假设我们有一个包含多个data.csv文件的文件夹,每个文件包含相同数量的变量,但每个变量来自不同的时间。
在R中是否有一种方法可以同时导入它们,而不是单独导入它们
我的问题是,我有大约2000个数据文件要导入,只需使用以下代码即可单独导入:
read.delim(file=“filename”,header=TRUE,sep=“\t”)
效率不高
类似于以下内容的内容将导致每个数据帧作为单个列表中的一个单独元素:
temp=list.files(pattern=“*.csv”)
myfiles=lapply(temp,read.delim)
这假定这些csv位于一个目录(当前工作目录)中,并且所有csv都具有小写扩展名.csv
然后,如果您想将这些数据帧组合成单个数据帧,请参阅其他答案中的解决方案,使用诸如do.call(rbind,…)、dplyr::bind_rows()或data.table::rbindlist()
如果确实希望每个数据帧位于单独的对象中,即使这通常是不可取的,也可以使用assign执行以下操作:
temp=list.files(pattern=“*.csv”)
对于(1中的i:length(temp))分配(temp[i],read.csv(temp[i]))
或者,如果没有分配,为了演示(1)如何清理文件名和(2)如何使用列表2env,您可以尝试以下操作:
temp=list.files(pattern=“*.csv”)
清单2env(
lapply(集合名称(临时、制造名称(gsub(“*.csv$”,“”,临时)),
read.csv),envir=.GlobalEnv)
但同样,通常最好将它们放在一个列表中