R Combine multiple .csv files and retain source csv file name in an additional column

↘锁芯ラ 提交于 2019-12-11 17:34:54

问题


Using R, I'm compiling 2400 .csv files into a single csv file. Each csv file to be combined has 2 columns and 10 rows. My problem is to add the source csv file.csv as third column for source reference.

For Example I want to combine "File1.csv" and "File2.csv"

File1.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

Expected output is:

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

Below is the code i have tried to combine multiple 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)


回答1:


what about a simple for loop?

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)


来源:https://stackoverflow.com/questions/57604334/r-combine-multiple-csv-files-and-retain-source-csv-file-name-in-an-additional-c

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!