如何将多个CSV文件中的目标列读取到一个文件中,并将输入文件名的列重命名为R?

如何将多个CSV文件中的目标列读取到一个文件中,并将输入文件名的列重命名为R?,r,csv,merge,R,Csv,Merge,我有多个不同名称的CSV文件,但所有文件的格式都完全相同,列和行的顺序相同,标签也相同。我希望能够从每个文件中读取特定列,并通过将文件名添加到1个文件R中来重命名这些列 例如,我希望保留季节、到达和工作日(对于所有文件都是相同的),并从每个文件中提取Var3和Var7列 File1: Season reach weekday Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 File2: Season reach weekday Var1 Var2 Var3 Var

我有多个不同名称的CSV文件,但所有文件的格式都完全相同,列和行的顺序相同,标签也相同。我希望能够从每个文件中读取特定列,并通过将文件名添加到1个文件R中来重命名这些列

例如,我希望保留季节、到达和工作日(对于所有文件都是相同的),并从每个文件中提取Var3和Var7列

File1: Season reach weekday Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8
File2: Season reach weekday Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8
File3: Season reach weekday Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8
将合并为:

MergedFile: Season reach weekday File1Var3 File1Var7 File2Var3 File2Var7 File3Var3 File3Var7

这可能吗?

在分配名称和按数据筛选时,将它们读入列表,代码如下:

names <- c("File1", "File2", "File3")
d <- lapply(names, function(name) {
         df <- read.table(name, header=TRUE)

         # Remove unneeded columns
         df <- df[c('Season', 'reach', 'Var3', 'Var7')]

         # Rename columns
         varcols <- grepl('Var', names(df))
         names(df)[varcols] <- paste0(name, names(df)[varcols])
     })

这将匹配每个数据帧中未重命名的列。

这取决于许多因素。请包括一个可复制的示例和一些您尝试过的代码。
Reduce(merge, d)