我正在努力在我的df的一列上实现一个简单的指令。
我有一个长列,其中许多条目为#VALUE,还有一些具有合法数字。我想要做的是将“#VALUE”条目更改为na,然后使用函数na.locf将实际数字填入所有这些行。
我已经尝试了几次迭代并没有运气,如下所示。有谁知道这个很好的解决方案?谢谢!
尝试1:
y2005[,24]=apply(y2005[24],2, function(x) if(x=="#VALUE") {x=NA})
尝试2:
spreadfind=function(x) {
if(x=="#VALUE")
return(NA)}
y2005$spread=sapply(y2005$spread,spreadfind)
理想情况下,这两个理论上都会出现:
y2005$spread=na.locf(y2005$spread,fromLast=FALSE)
答案 0 :(得分:1)
您的数据框y2005
和您指的是第24列吗?替换" #VALUE"使用NA
,您只需要执行
y2005[, 24][y2005[, 24] == "#VALUE"] <- NA