如何将多个CSV文件中的目标列读取到一个文件中,并将输入文件名的列重命名为R?
我有多个不同名称的CSV文件,但所有文件的格式都完全相同,列和行的顺序相同,标签也相同。我希望能够从每个文件中读取特定列,并通过将文件名添加到1个文件R中来重命名这些列 例如,我希望保留季节、到达和工作日(对于所有文件都是相同的),并从每个文件中提取Var3和Var7列如何将多个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
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)