【发布时间】:2013-10-21 17:32:23
【问题描述】:
我有 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)
}
【问题讨论】:
-
那不是 csv 格式,因为没有逗号。如果这实际上是您的文件的样子,请改用
read.table。 -
请注意,您可以通过调用
sprintf:sprintf('file_name%d.csv', i)来替换两个粘贴步骤。