加载文件并将功能应用于代码中的特定组件

Loading files and applying function to specific components in the code

我想加载一些外部文件,可以根据列表名称和文件名称将其应用于我的列表l1

例如: 如果我有 3 个 .csv 文件“2008.csv”、“2009.csv”、“2010.csv”,这些 .csv 文件中的数据将作为数据框加载。我想将这些数据帧加载到列表中,如下所示:

"2008.csv" 到 l1 中的第一个元素(即列表中的 2008)

"2009.csv" 到 l1 中的第二个元素(列表中的 2009)

"2010.csv" 到 l1 中的第三个元素(列表中的 2010)。

在这种情况下,.csv 文件针对列表的特定元素(即,“2009.csv”不会进入 2008 年和 2010 年。

有没有办法告诉 R 查看文件名并将它们加载到列表的特定组件中?

l1 <- list(NULL, NULL, NULL)
names(l1) <- c("2008", "2009", "2010")

您可以按如下方式进行:

l1 <- list()
list.names <- c("2008", "2009", "2010")
for(i in list.names){
  l1[[i]] <- read.csv2("file.csv", header=T)
}

基于 user-supplied 姓名列表使用 lapply 的简单解决方案:

lapply(c("2008", "2009", "2010"), function(thisfile) read.csv(paste0(thisfile, ".csv")))

(这没有 akrun 在评论中的建议那么复杂,它搜索文件并提取文件名。)