[英]how to use “for loop” and “write.csv” at the same time?
我有一個陣列。 它有lat,lon,time和value。 時間從1到300開始。這是時間= 1的數組的一部分。
myarray[,,1]
lon
lat -124.5 -123.5 -122.5 -121.5 -120.5 -119.5 -118.5
31.5 0 0 0 0 0 0
32.5 0 0 0 0 0 0
33.5 0 0 0 0 0 0
34.5 0 0 0 0 0 0
35.5 0 0 0 0 0 0
36.5 0 0 0 768.1 0 126.2
37.5 0 0 0.2 0 811 212.1
38.5 0 0 3055 0 243.9 243.7
39.5 0 0 1.5 0.1 3 0
40.5 0.1 16.8 4.3 0.5 2.1 0
41.5 0.2 398.6 0.4 1.2 1.6 0
42.5 0 0.1 0.9 0.1 0.7 0
我想同時使用“write.csv”和“for循環”從每個時間步(1到300)讀取數組中的數據,並將它們存儲在以“i”作為索引的單個.csv文件中。 我使用了這個命令,但似乎它不起作用:
for (i in 1:300) write.csv(myarray[,,i],"myarray.i.csv")
有多種方法可以解決這個問題:
paste('myarray', i, 'csv', sep = '.')
要么:
sprintf('myarray.%d.csv', i)
我更喜歡最后一個。
一種方法是
for (i in 1:300) {
write.table(myarray[,,i],file=""myarray.i.csv"",append=TRUE,sep=",",col.names=TRUE,row.names=TRUE)
}
這應該工作正常:
n = dim(mydata)[3]
for(i in 1:n) {
#unpack a 3D array
mat = mydata[,,i]
form = sprintf('subject_%s.csv', i)
write.csv(mat, file = form)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.