有条件地向数据框添加行

时间:2014-03-13 18:57:50

标签: r

嗨我有一个n数据帧,我用for循环

顺序打开
myfiles <- list.files(pattern="*.dat")
myfilesContent <- lapply(myfiles, read.table, header=T, quote="\"")
for (i in 1:length(myfiles)){
 ...
}

我想做的是只打开一个尊重某个条件并按行合并的行,比如

df <- data.frame
for (i in 1:length(myfiles)){
  if(unique(myfilesContent[[i]]$V1) %in% test) df <-merge(df,myfilesContent[[i]])
}

但我收到此错误

Error in as.data.frame.default(x) : 
  cannot coerce class '"function"' into a data.frame

非常感谢

1 个答案:

答案 0 :(得分:2)

试试这个例子:

  do.call(rbind,lapply(myfiles, function(x){
          dt <- read.table(x, header=TRUE, quote="\"")
          if (dt$V1 %in% test) dt 
   }))

你读了,你只保留检查条件。然后绑定结果。