今天在sql数据库里面查询的时候,发现某列数据有比较多的缺失值,要求该列数据的缺失值用前面的非缺失值填充。但前一个可能也是缺失的,用sql写了好久,算是搞定了,可惜公司数据库没权限连接R,不然就简单了。如有一列数据 y<-c(10,NA,NA,50,NA)
则实现的编程为
for(i in 1:5) {
if (is.na(y[i])==TRUE) y[i]<-y[i-1]
}
用sas的话,则写如下代码
data e;
set a;
retain z;
if y^=. then z=y;
都比坑爹的sql好用多了……
大家如果有向量化的方法实现这个效果,欢迎回帖。


雷达卡





京公网安备 11010802022788号







