gpt4 book ai didi

julia - 如何使用下一个有效观察将 `missings` 填充到向量中

转载 作者:行者123 更新时间:2023-12-05 02:35:23 24 4
gpt4 key购买 nike

是否有任何特定函数可以填充数组中的缺失值?MWE:

x = [missing,missing,2,3,missing,4]
desired = [2,2,2,3,4,4]

最佳答案

该功能不在 Base 语言中,但在 Impute.jl 中.您正在查看的内容称为下一次观察向后进行 插补 (nocb)。你可以通过以下方式使用那个 julia 包来做到这一点:

using Impute (if you don't have the package in your enviroment, add it)
x = [missing,missing,2,3,missing,4]
y = copy(x)
Impute.nocb!(x) #implace, overwrites x
z = Impute.nocb(y) #creates a new vector

它还有其他形式的数据插补,因此如果您要插补表格数据,那是最安全的方法。

您也可以实现自己的nocb。这是 Impute.jl 使用的实现,有一些简化:

#implace version
function nocb!(data::AbstractVector{Union{T, Missing}}) where T
@assert !all(ismissing, data)
end_idx = findlast(!ismissing, data)
count = 1
for i in end_idx - 1:-1:firstindex(data)
if ismissing(data[i])
data[i] = data[i+1]
else
end_idx = i
count = 1
end
end
return data
end
#out of place version
nocb(x) = nocb!(copy(x))

关于julia - 如何使用下一个有效观察将 `missings` 填充到向量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70587129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com