将缺失的数组转换为 NaN
Convert missing Array to NaN
让我们以我使用 ShiftedArrays 包 lag() 函数的例子为例。
我将数组 o 与数组 c 进行比较。如果 o 小于 lag(c,1) 说真,假。
# dummy data
o = collect(5.0:1.0:14)
c = collect(1.0:1.0:10)
# lag
using ShiftedArrays
o_c_lag1 = o .< lag(c,1)
输出:
print(o_c_lag1)
Any[missing, false, false, false, false, false, false, false, false, false]
我的问题在这里。在将缺失值转换为 NaN 和 Float64 输出类型的同时,是否有一种成功的方法来进行 o 和 c bool 比较?
我输出的类型是 Any。我正在寻找编写快速代码的方法。所以我希望它是 Float64。
如果我生成 NaN:
nan = [NaN]
1-element Array{Float64,1}:
NaN
我将编写这行代码的数千种变体:
o_c_lag1 = o .< lag(c,1)
有没有办法将一行中的 Missing 类型转换为 NaN?那么我可以输出 Float64 吗?
换几千个Array会很麻烦。
** 编辑
也许我可以将所有数组存储在 R 等效列表()中。并遍历所有数组,将所有缺失更改为 NaN 并转换为 Float64 类型。
我不熟悉 ShiftedArrays
包,但您可以执行以下操作:
julia> o_c_lag1
10-element Array{Any,1}:
missing
false
false
false
false
false
false
false
false
false
julia> Float64.(replace(o_c_lag1, missing => NaN)))
10-element Array{Float64,1}:
NaN
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
您可以使用replace(x, missing => NaN)
将missing
更改为NaN
,然后只需将数组转换为Float64
s。
让我们以我使用 ShiftedArrays 包 lag() 函数的例子为例。 我将数组 o 与数组 c 进行比较。如果 o 小于 lag(c,1) 说真,假。
# dummy data
o = collect(5.0:1.0:14)
c = collect(1.0:1.0:10)
# lag
using ShiftedArrays
o_c_lag1 = o .< lag(c,1)
输出:
print(o_c_lag1)
Any[missing, false, false, false, false, false, false, false, false, false]
我的问题在这里。在将缺失值转换为 NaN 和 Float64 输出类型的同时,是否有一种成功的方法来进行 o 和 c bool 比较?
我输出的类型是 Any。我正在寻找编写快速代码的方法。所以我希望它是 Float64。
如果我生成 NaN:
nan = [NaN]
1-element Array{Float64,1}:
NaN
我将编写这行代码的数千种变体:
o_c_lag1 = o .< lag(c,1)
有没有办法将一行中的 Missing 类型转换为 NaN?那么我可以输出 Float64 吗?
换几千个Array会很麻烦。
** 编辑
也许我可以将所有数组存储在 R 等效列表()中。并遍历所有数组,将所有缺失更改为 NaN 并转换为 Float64 类型。
我不熟悉 ShiftedArrays
包,但您可以执行以下操作:
julia> o_c_lag1
10-element Array{Any,1}:
missing
false
false
false
false
false
false
false
false
false
julia> Float64.(replace(o_c_lag1, missing => NaN)))
10-element Array{Float64,1}:
NaN
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
您可以使用replace(x, missing => NaN)
将missing
更改为NaN
,然后只需将数组转换为Float64
s。