Dataframe 在Julia-0.5中使用带Julia null的基本数学运算符

Dataframe 在Julia-0.5中使用带Julia null的基本数学运算符,dataframe,julia,nullable,Dataframe,Julia,Nullable,我正在使用Julia 0.5.1-pre+2中的数据帧,这些数据帧是从github本地提取和构建的,我还尝试了Mac dmg下载0.5下载,我在理解如何正确使用可空和可空阵列时遇到了困难 df = DataFrame(x=rand(20), y=rand(20)) mean(df[:x]) ERROR: MethodError: no method matching /(::Nullable{Float64}, ::Int64) 因此,这个错误似乎告诉我,这个操作不是为可为null的{Fl

我正在使用Julia 0.5.1-pre+2中的数据帧,这些数据帧是从github本地提取和构建的,我还尝试了Mac dmg下载0.5下载,我在理解如何正确使用可空和可空阵列时遇到了困难

df = DataFrame(x=rand(20), y=rand(20))

 mean(df[:x])
ERROR: MethodError: no method matching /(::Nullable{Float64}, ::Int64)
因此,这个错误似乎告诉我,这个操作不是为可为null的{Float}和Int定义的,只是简单地尝试一个类似的操作

Nullable(2.) / 1
将导致相同的错误

但是,对于数据帧,我感到困惑,因为它显示了如下操作:

mean(df[1])
median(df[1])

mean(df[:A])
median(df[:A])

df = DataFrame(A = 1:4, B = randn(4))
colwise(cumsum, df)
所有这些在我的机器上执行时都会导致类似的未定义方法错误


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

出于某种原因,您安装了数据帧的开发(主)版本。如果您在某个时候运行了
Pkg.develope(“DataFrames”)
,则可能会出现这种情况

DataFrames
正在经历一次重大的重写,因此许多事情可能无法在开发版本上正常工作。发布版本应该可以正常工作。删除
.julia
文件夹后,您将返回到发布版本

您可以使用
Pkg.status
功能检查软件包的状态。比如说

julia> Pkg.status("DataFrames")
  - DataFrames                    0.8.4
如果任何包安装了其主版本,将在结果中指定

julia> Pkg.status("JavaCall")
  - JavaCall                      0.4.2+             master 

不带任何参数的函数
Pkg.status()
将显示所有包的状态

我认为可以为空的示例不应该工作,但DataFrames one def应该工作。我已经尝试了您的第一个示例,在我的macbook中它可以工作。我已经用自制的木桶安装了朱莉娅。你可能想试试。@merch那是什么版本的Julia?@lbollar,我已经安装了Julia版本0.5。0@merch我删除了.julia目录,重新开始使用cask版本,现在它可以工作了。我知道的不足以理解这个问题,但一定与软件包有关。