R合并多个.csv文件,并在另一列中保留源csv文件名 [英] R Combine multiple .csv files and retain source csv file name in an additional column

查看:339
本文介绍了R合并多个.csv文件,并在另一列中保留源csv文件名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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.

例如,我要组合"File1.csv"和"File2.csv"

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

预期输出为:

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的代码.

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)

推荐答案

简单的for循环有什么用?

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)

这篇关于R合并多个.csv文件,并在另一列中保留源csv文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆