仅合并csv文件的一部分,并使用csv文件名

时间:2018-03-21 20:37:03

标签: r csv merge

我想合并存储在工作目录及其子文件夹中的cvs文件。 这段代码运行顺利:

csv_files <- dir(pattern='.*[.]csv', recursive = T)
list.files()

my_data_frame <- do.call(rbind,lapply(csv_files,read.csv))`

到目前为止一切顺利。 我现在想添加一个包含这些csv文件名称的coloumn。 此外,我想只提取这些cvs文件的片段,让我们说从第5行到第10行。

感谢您的宝贵帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用您自己的执行子集的函数替换read.csv调用中的lapply并添加新列。例如,

csv_files <- dir(pattern='.*[.]csv', recursive = T)
list.files()

#function to make df from each csv 
my_read_csv <- function(x) {
  dfx <- read.csv(x)[5:10,] #or any other subset
  dfx$fname <- basename(x) #add new column
  return(dfx)
}

my_data_frame <- do.call(rbind,lapply(csv_files,my_read_csv))