加载文件并将功能应用于代码中的特定组件
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 在评论中的建议那么复杂,它搜索文件并提取文件名。)
我想加载一些外部文件,可以根据列表名称和文件名称将其应用于我的列表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 在评论中的建议那么复杂,它搜索文件并提取文件名。)