在这里找到原始问题和解决方案: Importing multiple .csv files into R
解决方案是:
temp = list.files(pattern="*.csv")
list2env(
lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))),
read.csv), envir = .GlobalEnv)
但我想向read.csv
,row.names=1
添加一个条件 - 第一列是行名称
然后解决方案不再起作用了。有什么建议吗?
正在使用:
temp = list.files(pattern="*.csv")
list2env(
lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))),
read.csv(row.names=1)), envir = .GlobalEnv)
谢谢!
答案 0 :(得分:0)
您可以将此通用语法用于lapply
:
lapply(df, function(x) read.csv(x))
换句话说,您可以指定要应用于df
的匿名函数。将其应用于您的实际代码:
temp <- list.files(pattern=".csv")
list2env(lapply(setNames(temp, make.names(gsub(".csv$", "", temp))),
function(x) read.csv(x, row.names=1)), envir = .GlobalEnv)
答案 1 :(得分:0)
如果使用lapply
调用函数,则不像调用函数本身那样在大括号中写入参数。相反,只需添加如下参数:
list2env(
x = lapply(
X = setNames(temp, make.names(gsub("*.csv$", "", temp))),
FUN = read.csv, row.names = 1
),
envir = .GlobalEnv
)