>a1<-c(2,3,NA,4,6,7,NA,30,NA,55)
> a2<-c(2,22,3,NA,4,6,NA,30,NA,55)
> a3<-c(2,3,NA,4,6,NA,30,NA,55,NA)
> a4<-c(2,NA,4,6,NA,30,NA,55,NA,12)
> data<-data.frame(a1,a2,a3,a4) >data
a1 a2 a3 a4
1 2 2 2 2
2 3 22 3 NA
3 NA 3 NA 4
4 4 NA 4 6
5 6 4 6 NA
6 7 6 NA 30
7 NA NA 30 NA
8 30 30 NA 55
9 NA NA 55 NA
10 55 55 NA 12
for (i in 1:4) {
+ data[paste("a",i,sep="")]<-ifelse(is.na(data[paste("a",i,sep="")]),data[paste("a",i+1,sep="")],data[paste("a",i,sep="")])
+ }
结果出现了如下错误提示:
错误于`[.data.frame`(data, paste("a", i + 1, sep = "")) :
选择了未定义的列
此外: 警告信息:
1: In `[<-.data.frame`(`*tmp*`, paste("a", i, sep = ""), value = list( :
提供了10变数用来替换1变数
2: In `[<-.data.frame`(`*tmp*`, paste("a", i, sep = ""), value = list( :
提供了10变数用来替换1变数
3: In `[<-.data.frame`(`*tmp*`, paste("a", i, sep = ""), value = list( :
提供了10变数用来替换1变数
我本意是希望将缺失值用相邻下一个变量的值来替换,用循环进行可以批量进行。
|