首页 > 解决方案 > 在 R 中绑定多个数据文件中的选定行

问题描述

我已经编写了代码,以前从多个文件的模型中生成时间序列数据。我一般需要完整的时间序列数据,但我也想读取特定日期所有列的结果并将它们合并到一个单独的文件中。但是,当我这样做时,我得到“rbind 中的错误(deparse.level,...):参数的列数不匹配”,尽管事实上我知道所有文件都应该具有相同的列名和# 列。

我在这里尝试了这种方法Select multiple rows in multiple DFs with loop in R但我收到错误“rbind(deparse.level, ...) 中的错误:参数的列数不匹配”

Resfiles = list.files("C:/Users/Me/Desktop/R Code/Testfiles", pattern = "Results+.*csv")
Resfiles

是我在文件中阅读的方式

方法一:

resfiles.list = sapply(Resfiles, function(file)
{df = read.csv(file, header=TRUE, stringsAsFactors=FALSE)
df$SourceFile = file
enddate = nrow(file)
df = df[c(1,2,21,133,159,enddate), ]




}
 )

allres = do.call(rbind, resfiles.list)

生成错误“rbind(deparse.level, ...) 中的错误:参数的列数不匹配”

和方法 2:

Results = NULL;

for(j in Resfiles)
{

  input = read.csv(file = j, header = TRUE, sep =",")
  enddate = nrow(input)

  d0 = input[1, ]
  d0
  d1 = input[2, ]
  d20 = input[21,]
  d132=input[133, ]
  d158 = input[159, ]
  final = input[enddate, ]
  final

  results1o = rbind(d0, d1, d20, d132, d158, final)
  Results = rbind(Results,results1o )
  print(Results)
}
write.csv(Results, file = "PredResults.csv")

当我尝试使用 smartbind 的方法 2 时,我收到错误“!sapply(data, function(l) is.null(l) | (ncol(l) == 0) | (nrow(l) == : invalid参数类型"

如果我只使用 rbind,我会得到“read.table 中的错误(文件 = 文件,标题 = 标题,sep = sep,引用 = 引用,:前五​​行是空的:放弃”

我想要得到的是一个数据框,其中包含按动物分组的特定兴趣行,我稍后可以根据需要对其进行子集化和处理。我只需要能够读取这些 40 多个结果文件,将所需的行全部提取到一个大数据框中,并将其保存为 csv,我需要它可扩展,这样无论我有 40 个文件,相同的代码都可以工作或 >100。

标签: rrbind

解决方案


推荐阅读