【发布时间】:2017-11-05 17:03:27
【问题描述】:
我正在尝试制作一个从 8 个不同的 CSV 文件输出数据帧的函数。它们都具有相同的变量和相同类型的数据。它们的唯一区别是年份。我试图写出这个函数,但我似乎无法让它工作。我在想一个 lapply woulf 工作,但我不知道如何合并它。
这些是说明: 编写一个名为 'air' 的函数,它接受一个 'year' 参数并返回一个包含该年份数据的 data.frame,禁止自动转换为因子。
path <- "C:/Users/Lacy Macc/Downloads/adviz/"
files <- list.files(path=path, pattern="*.csv")
for(y in files)
air <- function(year){
if (!exists(""))
}
}
【问题讨论】:
-
do.call(rbind, lapply(list.files(path = path, pattern = 'csv$'), read.csv)),尽管您可能希望根据您的说明将文件向量子集为您想要的那些。 -
我是将它添加到函数中还是只是它自己的东西?
-
该代码将读取
path文件夹中的所有文件并将它们组合成一个数据帧。但是根据说明,这不是您需要的,您只想读取并返回与正确年份对应的数据。您能否举例说明文件的命名方案以及与年份的对应关系? -
@lacymacc5552 无论哪种方式。我通常单独使用它,因为我发现自己不会重读 CSV,但如果您愿意,可以将其放入函数中。
-
@Marius 这是 csv 格式的文件的样子.......................... ....... > 文件 [1] “ad_viz_plotval_data-2009.csv” “ad_viz_plotval_data-2010.csv” [3] “ad_viz_plotval_data-2011.csv” “ad_viz_plotval_data-2012.csv” [5] “ad_viz_plotval_data-2013 .csv" "ad_viz_plotval_data-2014.csv" [7] "ad_viz_plotval_data-2015.csv" "ad_viz_plotval_data-2016.csv"