将多个.csv文件导入R添加条件(row.names = 1)

时间:2018-04-20 14:02:54

标签: r read.csv

在这里找到原始问题和解决方案: 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.csvrow.names=1添加一个条件 - 第一列是行名称 然后解决方案不再起作用了。有什么建议吗?

正在使用:

temp = list.files(pattern="*.csv")
list2env(
  lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))), 
         read.csv(row.names=1)), envir = .GlobalEnv)

谢谢!

2 个答案:

答案 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
)