在julia-0.5

时间:2016-09-29 05:15:59

标签: julia nullable

我在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)

在我的机器上执行时,所有这些都会导致类似的未定义方法错误。

我不确定这是当前生态系统中的正确行为还是构建/包版本问题。

1 个答案:

答案 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()的函数将显示所有包的状态。