【发布时间】:2014-10-23 21:31:53
【问题描述】:
我在 Coursera 上有一个作业,但我被卡住了 - 我不一定需要或想要一个完整的答案(因为这会作弊),但我们非常感谢您提供正确方向的提示。
我在一个文件夹中有 300 多个 CSV 文件(名为 001.csv、002.csv 等)。每个都包含一个带有标题的数据帧。我正在编写一个函数,它将接受三个参数:文件的位置、要计算平均值的列的名称(在数据框内)和 要在计算中使用的文件(id) 。
我尽量保持简单:
pm <- function(directory, pollutant, id = 1:332) {
setwd("C:/Users/cw/Documents")
setwd(directory)
files <<- list.files()
首先,设置wd,获取所有文件的列表
x <- id[1]
x
获取用户指定ID的起点。
问题
for (i in x:length(id)) {
df <- rep(NA, length(id))
df[i] <- lapply(files[i], read.csv, header=T)
result <- do.call(rbind, df)
return(df)
}
}
所以这就是我碰壁的地方:我需要从上面获取用户指定的输入(例如 10:25)并将文件“010.csv”到“025.csv”中的内容放入数据框实际得出一个特定列的平均值。
所以我的想法是从指定 id 的起点开始沿着 id 的长度(例如 16 表示 10:25)运行一个 for 循环。在这个循环中,我需要将files 的适当值作为read.csv 的输入,并将.csv 文件的内容放入数据框中。
我可以获取单个 .csv 文件并将它们放入数据框中,但不是多个。
有没有人提示我如何进行?
【问题讨论】:
-
这里也讨论了同样的问题:stackoverflow.com/a/23640064/1573580