我有一个目录,其中包含两个 .csv
文件,我想读取这些文件并将其导入到 R 中。
到目前为止,我已经尝试过下面的代码,它确实有效。但仅限于其中一个文件。
for (i in list.files(path = ".", pattern = "\\.csv$")){
print(i)
f <- read.table(i, fill=TRUE, row.names=NULL)
Table <- data.frame(f[3])
Table["station.id"] <- i
}
Table
产品
V3 station.id
1 8.27 agrin.csv
2 9.11 agrin.csv
3 11.60 agrin.csv
4 15.30 agrin.csv
5 20.53 agrin.csv
6 25.07 agrin.csv
7 27.42 agrin.csv
8 27.11 agrin.csv
9 22.92 agrin.csv
10 17.98 agrin.csv
11 13.15 agrin.csv
12 9.62 agrin.csv
13 17.34 agrin.csv
我想要的是实现一个 for
循环,它将迭代目录并为其中的每个文件创建一个如上所示的表。
请注意,print(i)
行返回两个结果,例如 agrin.csv
和 agr.csv
有什么建议吗?
最佳答案
在for
循环之前,让:
Table <- data.frame(V3=numeric(0), station.id=character(0))
这称为对象预分配。 然后,在循环中尝试使用 rbind。 使用此方案,您将增量创建对象。
关于r - list.files 函数中的 for 循环仅生成最后一个 i (R) 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23242384/