我在Julia 0.5.1-pre + 2中使用Dataframes并从github本地构建,我也尝试了Mac dmg下载0.5下载,我无法理解如何正确使用nullables和可空数组。
df = DataFrame(x=rand(20), y=rand(20))
mean(df[:x])
ERROR: MethodError: no method matching /(::Nullable{Float64}, ::Int64)
所以这个错误似乎告诉我,这个操作没有为Nullable {Float}和Int定义,只是尝试像
这样的操作Nullable(2.) / 1
会导致同样的错误。
虽然我对DataFrame的documentation感到困惑,因为它显示的操作如下:
mean(df[1])
median(df[1])
mean(df[:A])
median(df[:A])
df = DataFrame(A = 1:4, B = randn(4))
colwise(cumsum, df)
在我的机器上执行时,所有这些都会导致类似的未定义方法错误。
我不确定这是当前生态系统中的正确行为还是构建/包版本问题。
答案 0 :(得分:0)
出于某种原因,您安装了DataFrames的开发(主)版本。如果您在某个时刻运行Pkg.checkout("DataFrames")
,可能会发生一种可能的方式。
DataFrames正在进行重大改写,因此许多事情可能无法在开发版本上正常运行。发布版本应该可以正常工作。删除.julia
文件夹会使您返回发布版本。
您可以使用Pkg.status
功能检查软件包的状态。例如,
julia> Pkg.status("DataFrames")
- DataFrames 0.8.4
如果任何软件包安装了其主版本,则会在结果中指定。
julia> Pkg.status("JavaCall")
- JavaCall 0.4.2+ master
没有任何参数Pkg.status()
的函数将显示所有包的状态。