类似下面的内容应该导致每个数据帧作为单个列表中的单独元素:
temp = list.files(pattern="\\.csv$")
myfiles = lapply(temp, read.delim)
这假设您将这些 CSV 文件放在一个目录(您当前的工作目录)中,并且所有这些文件都具有小写扩展名.csv
.
如果您想将这些数据帧组合成一个数据帧,请使用以下内容查看其他答案中的解决方案do.call(rbind,...)
, dplyr::bind_rows()
or data.table::rbindlist()
.
如果您确实希望每个数据框位于单独的对象中,即使这通常是不可取的,您也可以执行以下操作assign
:
temp = list.files(pattern="\\.csv$")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i]))
或者,没有assign
,并演示 (1) 如何清理文件名以及 (2) 展示如何使用list2env
,您可以尝试以下操作:
temp = list.files(pattern="\\.csv$")
list2env(
lapply(setNames(temp, make.names(gsub("\\.csv$", "", temp))),
read.csv), envir = .GlobalEnv)
但同样,通常最好将它们保留在一个列表中。