【问题标题】:R Combine multiple .csv files and retain source csv file name in an additional columnR合并多个.csv文件并在附加列中保留源csv文件名
【发布时间】:2019-12-27 11:35:11
【问题描述】:

使用 R,我将 2400 个 .csv 文件编译成一个 csv 文件。每个要合并的 csv 文件有 2 列和 10 行。我的问题是将源 csv file.csv 添加为源参考的第三列。

例如我想结合“File1.csv”和“File2.csv”

文件 1.csv:

Column1  Column2
-6  -9.29E-08
-5.9    -8.71E-08
-5.8    -8.19E-08
-5.7    -7.72E-08
-5.6    -7.25E-08
-5.5    -6.81E-08
-5.4    -6.39E-08
-5.3    -6.01E-08
-5.2    -5.64E-08
-5.1    -5.29E-08

File2.csv

Column1  Column2
-5  -4.94E-08
-4.9    -4.63E-08
-4.8    -4.33E-08
-4.7    -4.04E-08
-4.6    -3.77E-08
-4.5    -3.50E-08
-4.4    -3.26E-08
-4.3    -3.02E-08
-4.2    -2.79E-08
-4.1    -2.57E-08

预期输出为:

Column1  Column2    Source 
-6  -9.29E-08   File1.csv
-5.9    -8.71E-08   File1.csv
-5.8    -8.19E-08   File1.csv
-5.7    -7.72E-08   File1.csv
-5.6    -7.25E-08   File1.csv
-5.5    -6.81E-08   File1.csv
-5.4    -6.39E-08   File1.csv
-5.3    -6.01E-08   File1.csv
-5.2    -5.64E-08   File1.csv
-5.1    -5.29E-08   File1.csv
-5  -4.94E-08   File2.csv
-4.9    -4.63E-08   File2.csv
-4.8    -4.33E-08   File2.csv
-4.7    -4.04E-08   File2.csv
-4.6    -3.77E-08   File2.csv
-4.5    -3.50E-08   File2.csv
-4.4    -3.26E-08   File2.csv
-4.3    -3.02E-08   File2.csv
-4.2    -2.79E-08   File2.csv
-4.1    -2.57E-08   File2.csv

以下是我尝试组合多个 csv 的代码。

library(plyr)
library(readr)

mydir <- "D:Combining_CSV_Files/raw data"
setwd(mydir)

myfiles = list.files(path=mydir,pattern="*.csv",full.names=TRUE)

dat_csv = ldply(myfiles,read.csv)
#dat_csv

write.csv(dat_csv,"combined_data.csv",row.names = FALSE)

【问题讨论】:

  • 不是最优雅的解决方案,但如果您确定每个 csv 包含 10 行。 dat_csv$source &lt;- rep( myfiles, each =10)

标签: r csv filenames


【解决方案1】:

一个简单的for 循环怎么样?

myfiles <- list.files(path=mydir,pattern="*.csv",full.names=TRUE)
dat_csv <- data.frame()

for(i in myfiles){
   dat <- read.csv(paste("./",i,sep=""))
   dat$Source <- i
   dat_csv <- rbind(dat_csv,dat)
}

write.csv(dat_csv,"combined_data.csv",row.names = FALSE)

【讨论】:

    猜你喜欢
    • 2012-04-29
    • 1970-01-01
    • 2019-07-21
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2014-01-07
    • 2015-07-26
    相关资源
    最近更新 更多