尝试在没有 For 循环的情况下执行此操作,但无法弄清楚。
我想用默认值 0.0000001 替换列中的第一个 NA。
我正在做最后一次观察结转 (LOCF) 插补,但想给它一个默认值。
如果我有以下data.frame:
> Col1 Col2 Col3 Col4
> 1 NA 10 99
> NA NA 11 99
> 1 NA 12 99
> 1 NA 13 NA
我希望它看起来像这样:
> Col1 Col2 Col3 Col4
> 1 0.0000001 10 99
> 0.0000001 NA 11 99
> 1 NA 12 99
> 1 NA 13 0.0000001
这是我的代码,但很慢......
#Temporary change for missing first observation
for (u in 1:ncol(data.frame))
{
for (v in 1:nrow(data.frame))
{
#Temporary change the first observations in a row to 0.0000001 until it encounters a value that isn't NA
if(is.na(temp_equity_df_merge2[v,u]))
{
temp_equity_df_merge2[v,u]=0.0000001
}
else break
}
我想使用 apply 或一些更快的变体。我正在循环超过 20 列和 100 万行。
提前感谢您的帮助。