在 julia-0.5 中将基本数学运算符与 Julia Nullables 结合使用
Using base math operators with Julia Nullables in julia-0.5
我在 Julia 0.5.1-pre+2 中使用从 github 本地提取和构建的 Dataframes,我也尝试了 Mac dmg 下载 0.5 下载,我是无法理解如何正确使用可空值和可空数组。
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
会导致同样的错误。
我对 DataFrames 的 documentation 感到困惑,因为它显示了如下操作:
mean(df[1])
median(df[1])
mean(df[:A])
median(df[:A])
df = DataFrame(A = 1:4, B = randn(4))
colwise(cumsum, df)
所有这些在我的机器上执行时都会导致类似的未定义方法错误。
我不确定这是当前生态系统中的正确行为还是 build/package 版本问题。
出于某种原因,您安装了 DataFrames
的开发(主)版本。如果您在某个时候有 运行 Pkg.develop("DataFrames")
,可能会发生一种可能的方式。
DataFrames
正在进行重大重写,因此许多功能可能无法在开发版本上正常运行。发布版本应该可以正常工作。删除你的 .julia
文件夹让你回到发布版本。
您可以使用 Pkg.status
功能检查包裹的状态。例如
julia> Pkg.status("DataFrames")
- DataFrames 0.8.4
如果任何包安装了主版本,将在结果中指定。
julia> Pkg.status("JavaCall")
- JavaCall 0.4.2+ master
不带任何参数的函数Pkg.status()
将显示所有包的状态。
我在 Julia 0.5.1-pre+2 中使用从 github 本地提取和构建的 Dataframes,我也尝试了 Mac dmg 下载 0.5 下载,我是无法理解如何正确使用可空值和可空数组。
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
会导致同样的错误。
我对 DataFrames 的 documentation 感到困惑,因为它显示了如下操作:
mean(df[1])
median(df[1])
mean(df[:A])
median(df[:A])
df = DataFrame(A = 1:4, B = randn(4))
colwise(cumsum, df)
所有这些在我的机器上执行时都会导致类似的未定义方法错误。
我不确定这是当前生态系统中的正确行为还是 build/package 版本问题。
出于某种原因,您安装了 DataFrames
的开发(主)版本。如果您在某个时候有 运行 Pkg.develop("DataFrames")
,可能会发生一种可能的方式。
DataFrames
正在进行重大重写,因此许多功能可能无法在开发版本上正常运行。发布版本应该可以正常工作。删除你的 .julia
文件夹让你回到发布版本。
您可以使用 Pkg.status
功能检查包裹的状态。例如
julia> Pkg.status("DataFrames")
- DataFrames 0.8.4
如果任何包安装了主版本,将在结果中指定。
julia> Pkg.status("JavaCall")
- JavaCall 0.4.2+ master
不带任何参数的函数Pkg.status()
将显示所有包的状态。