Great investigative work. Is
DataFrames( array_of_arrays, Index(column_names_array) )
not the right way to hand construct DataFrames any more? I think I can
allocate DataArrays instead, but at every step of the way, I was trying to
hand-optimize the result fetching process, which resulted in not creating a
DataArray or DataFrame until right before we return to the user.

-Jacob


On Thu, Jan 23, 2014 at 3:27 PM, bp2012 <[email protected]> wrote:

> To check Jacob's suggestion about versions mismatch I completely removed
> the DataFrames and ODBC packages using Pkg.rm and physically deleted the
> directories from disk. I then added them via Pkg.add and Pkg,update.
>
> I am running the julia nightlies build.
> julia> versioninfo()
> Julia Version 0.3.0-prerelease+1127
> Commit bc73674* (2014-01-22 20:09 UTC)
>
> Pkg.status()
>  - DataFrames                  0.5.1
>  - ODBC                          0.3.5
>
> Pkg.checkout("ODBC")
> INFO: Checking out ODBC master...
> INFO: Pulling ODBC latest master...
> INFO: No packages to install, update or remove
>
> julia> Pkg.checkout("DataFrames")
> INFO: Checking out DataFrames master...
> INFO: Pulling DataFrames latest master...
> INFO: No packages to install, update or remove
>
> I did some digging. It looks like there is a mismatch in that countna
> expects DataFrame columns to be DataArrays. However the ODBC package
> returns DataFrames that have array columns (using the first constructor in
> dataframe.jl). You guys would know better as to whether a change is needed
> in the constructor or if countna should also accept Array columns.
>
>
> I made some local changes to work around the issue.
>
> show.jl:
> line 42:  if isna(col, i)     changed to  if isna(col[i])
> line 322:  missing[j] = countna(adf[j])     changed to    missing[j] =
> countna(isa(adf[j], DataArray) ? adf[j] : DataArray(adf[j]))
>
> These work great for me.
>
>

Reply via email to