让我们举一个使用ShiftedArrays包lag()函数的例子。 我将数组o与数组c进行比较。如果o小于滞后(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?
更改数千个阵列会很麻烦。
**编辑
也许我可以将所有数组存储在R等效列表()中。并迭代所有数组,将所有缺失更改为NaN并转换为类型Float64。
答案 0 :(得分:2)
我不熟悉ShiftedArrays
套餐,但您可以执行以下操作:
julia> o_c_lag1
10-element Array{Any,1}:
missing
false
false
false
false
false
false
false
false
false
julia> Float64.(collect(Missings.replace(o_c_lag1, 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
您可以使用Missings.replace
将missing
更改为NaN
,然后只需将收集的数组转换为Float64
s。