我有一个数据框,有些列有NA值.
如何NA用零替换这些值?
示例数据:
set.seed(1)
df <- data.frame(years=sort(rep(2005:2010, 12)),
months=1:12,
value=c(rnorm(60),NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA))
head(df)
years months value
1 2005 1 -0.6264538
2 2005 2 0.1836433
3 2005 3 -0.8356286
4 2005 4 1.5952808
5 2005 5 0.3295078
6 2005 6 -0.8204684
Run Code Online (Sandbox Code Playgroud)
请告诉我,我怎样才能将df $值中的NA替换为其他月份的中位数?"value"必须包含同月所有先前值的中值.也就是说,如果当前月份是5月,则"值"必须包含5月份所有先前值的中值.
我想从以下获取的矩阵中替换我的NA值:
read.table(…)
Run Code Online (Sandbox Code Playgroud)
这些值应该是相应行的平均值.
即,表格的以下行:
1 2 1 NA 2 1 1 2
Run Code Online (Sandbox Code Playgroud)
会成为
1 2 1 1.43 2 1 2
Run Code Online (Sandbox Code Playgroud)
谢谢.
这是我试图在更大的数据库中解决和实现的问题的示例:
我在新世界中有一个稀疏的点网格,lat和long定义如下.
LAT<-rep(-5:5*10, 5)
LON<-rep(seq(-140, -60, by=20), each=11)
Run Code Online (Sandbox Code Playgroud)
我知道网格上某些点的颜色
COLOR<-(c(NA,NA,NA,"black",NA,NA,NA,NA,NA,"red",NA,NA,"green",NA,"blue","blue",NA,"blue",NA,NA,"yellow",NA,NA,"yellow",NA+
NA,NA,NA,"blue",NA,NA,NA,NA,NA,NA,NA,"black",NA,"blue","blue",NA,"blue",NA,NA,"yellow",NA,NA,NA,NA,"red",NA,NA,"green",NA,"blue","blue"))
data<-as.data.frame(cbind(LAT,LON,COLOR))
Run Code Online (Sandbox Code Playgroud)
我想要做的是将COLOR中的NA值替换为与该点关闭(距离)的颜色.在实际实现中,我并不担心太多关系,但我认为这是可能的(我可以手动修复它们).
谢谢