0

我有 300 个格式与以下相同的 *.csv 文件。文件名相同,不同的索引从 1 到 300 开始(例如 myarray.1.csv myarray.2.csv ....myarray.300.csv):

     -124.5 -123.5  -122.5  -121.5  -120.5  -119.5  -118.5
31.5    0   0   0   0   0   0   0
32.5    0   0   0   0   0   0   0
33.5    0   0   0   0   0   0   0
34.5    0   0   0   0   0   1.1 5980.4
35.5    0   0   0   0   0   0   41
36.5    0   0   0   0.1 0   0   56
37.5    0   0   0   0   0   2.4 0
38.5    0   0   1   0   0.3 0.3 0
39.5    0   0   0   0   4.1 0.1 0

标题是经度,第一列是纬度,其他数组是对应的值。

我想使用“for-loop”和“write.csv”逐个读取它们并将它们转换为矩阵,从而丢弃标题和第一列,所以我只有最后的值。我使用了这个命令,但它似乎不起作用:

setwd("C:/Users/WF")
for ( i in 1:300) {
file_new_name <- myarray
file_new_name <- paste(file_new_name,i,sep=".")
file_new_name <- paste(file_new_name,".csv",sep="")
file_read     <- read.csv(file_new_name,header=TRUE)
}
4

1 回答 1

4

在我看来,这样的模式效果最好,并且在风格上非常类似于 R:

list_of_files = list.files("c:/User/WF", pattern = '*csv')
list_of_csv = lapply(list_of_files, read.csv)
big_object = do.call('rbind', list_of_csv)

我在这里假设您要阅读的所有 CSV 文件都存在于c:/User/WF.

您必须自己填写详细信息,但这应该可以帮助您入门。

于 2013-10-21T17:59:55.463 回答