找回密码
 立即注册
查看: 2699|回复: 0

求助该语句为何运行不通?

[复制链接]
发表于 2015-6-3 20:38:43 | 显示全部楼层 |阅读模式
>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变数


我本意是希望将缺失值用相邻下一个变量的值来替换,用循环进行可以批量进行。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 22:50 , Processed in 0.018808 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表