作者AndrewShi (沒有妳的我)
看板R_Language
標題[問題] 兩層for迴圈問題
時間Mon Jun 4 00:39:35 2018
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我想要讀多筆名稱相近的時間資料(nc檔)進R,資料的時間長度為一小時一筆,而我想要
讀2天共48筆資料進R,因此需寫兩層for迴圈(分別為日期和小時),我的程式碼如下,雖然
過程中沒有出現error,但讀進來的資料日期和小時是交錯的(環境敘述中的圖,只有24筆
)所以想請問該如何解決??謝謝。
資料名稱唯一的差別在於#precip那行的"01"(日期)和"00"(小時)。
[程式範例]:
rm(list=ls())
library(ncdf4)
day=c("01","02")
hour=c("00","01","02","03","04","05","06","07","08","09","10",11:23)
class(day)
class(hour)
nc<-list()
for(i in c(1:2)){
for(j in c(0:23)){
precip.file<-paste("C:\\Users\\TOM\\Desktop\\R(資料庫
)\\201505\\gsmap_mvk.201505",paste(day[i=(1:2)]),paste("."),
paste(hour[j=(0:23)],paste("00.v6.4133.0.nc")),sep="")
#precip<-"C:\\Users\\TOM\\Desktop\\R(資料庫
)\\20150501\\gsmap_mvk.201505"01"."00"00.v6.4133.0.nc"
#nc[i,j]=rbind(i,j)
}
i<-i+1
nc[i,j]<-nc_open(precip.file)
}
precip.file
View(matrix(precip.file))
[環境敘述]:
執行畫面拍照截圖於推文中
[關鍵字]:
兩層for迴圈 nc檔 讀取多筆資料
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 150.117.35.12
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1528043978.A.B8C.html
2F:→ andrew43: nc[i,j]是什麼?看不出來它怎麼初始化的。 06/04 15:20
3F:→ AndrewShi: 那應該只是我取的名稱。 06/04 15:54
4F:→ andrew43: 我是指nc怎麼初始化的? 06/04 16:13
5F:→ andrew43: 如果沒有先定nc,又怎麼能夠對nc[i,j]賦值? 06/04 16:14
6F:→ AndrewShi: 初使化??我應該是沒有做初使化,我只是把資料名稱不同 06/04 16:36
7F:→ AndrewShi: 的地方用矩陣把它串起來而已,那個nc[i,j]也可以改成nc 06/04 16:36
8F:→ AndrewShi: ,抱歉我是新手,不太懂你的意思@@ 06/04 16:36
9F:→ andrew43: 我猜nc[i,j]那句根本沒有被執行。過程中沒有error嗎? 06/04 17:16
10F:→ AndrewShi: 的確有error,昨天沒看到,是nc_open那一行有錯沒錯~ 06/04 17:35
11F:→ andrew43: 換個話題。i<-i+1這很明顯不對。for已經自動幫你換i值 06/04 17:39
12F:→ andrew43: 如果今天是用while而不是for那確實常用i=i+1這種方法 06/04 17:39
13F:→ AndrewShi: 了解,謝謝andrew大~那能請教你能否給我一些指點該如 06/04 22:47
14F:→ AndrewShi: 何解決那個error嗎??謝謝。 06/04 22:47
15F:→ andrew43: 我不了解nc_open之後你要怎麼處理,看說明是要再接 06/04 23:19
16F:→ andrew43: ncvar_get()取值。你可以再開一個新的文並把一個真實資 06/04 23:20
17F:→ andrew43: 料附上,並說明你希望怎麼包裹你取出的值 06/04 23:21
18F:→ andrew43: 另外希望你未來貼code時排一下版,目前好醜不容易看 06/04 23:23
19F:→ AndrewShi: 是要取值沒錯,但我現在問題卡在多筆檔案讀不進來,所 06/05 14:12
20F:→ AndrewShi: 以無法做後續取值的動作。 06/05 14:12
21F:→ AndrewShi: 真實的資料檔案在網路上是gz檔,需經過轉檔才能轉成nc 06/05 14:27
22F:→ AndrewShi: 檔,如果andrew大有需要的話,我再把網址貼給你。 06/05 14:27
23F:推 andrew43: 不妨只提供一個nc檔就好。因為它的內容會決定之後用什 06/05 14:31
24F:→ andrew43: 麼容器來包裹它較恰當方便。當然也可以直接用list 06/05 14:31
26F:→ AndrewShi: p.reanalysis2.pressure.html 06/05 14:41
27F:→ AndrewShi: 網址好像被截斷無法連上,還煩請andrew大到我之前發的 06/05 14:55
28F:→ AndrewShi: 文(標題:dimensions of z are not length(x)(-1))這篇 06/05 14:56
29F:→ AndrewShi: 有完整網址及說明,不過這網站上的nc檔和我這篇文用的n 06/05 14:56
30F:→ AndrewShi: c檔是不一樣就是了。 06/05 14:56