[問題] 兩層for迴圈問題

看板R_Language作者 (沒有妳的我)時間7年前 (2018/06/04 00:39), 編輯推噓1(1029)
留言30則, 2人參與, 7年前最新討論串1/2 (看更多)
[問題類型]: 程式諮詢(我想用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://www.ptt.cc/bbs/R_Language/M.1528043978.A.B8C.html

06/04 00:40, 7年前 , 1F

06/04 15:20, 7年前 , 2F
nc[i,j]是什麼?看不出來它怎麼初始化的。
06/04 15:20, 2F

06/04 15:54, 7年前 , 3F
那應該只是我取的名稱。
06/04 15:54, 3F

06/04 16:13, 7年前 , 4F
我是指nc怎麼初始化的?
06/04 16:13, 4F

06/04 16:14, 7年前 , 5F
如果沒有先定nc,又怎麼能夠對nc[i,j]賦值?
06/04 16:14, 5F

06/04 16:36, 7年前 , 6F
初使化??我應該是沒有做初使化,我只是把資料名稱不同
06/04 16:36, 6F

06/04 16:36, 7年前 , 7F
的地方用矩陣把它串起來而已,那個nc[i,j]也可以改成nc
06/04 16:36, 7F

06/04 16:36, 7年前 , 8F
,抱歉我是新手,不太懂你的意思@@
06/04 16:36, 8F

06/04 17:16, 7年前 , 9F
我猜nc[i,j]那句根本沒有被執行。過程中沒有error嗎?
06/04 17:16, 9F

06/04 17:35, 7年前 , 10F
的確有error,昨天沒看到,是nc_open那一行有錯沒錯~
06/04 17:35, 10F

06/04 17:39, 7年前 , 11F
換個話題。i<-i+1這很明顯不對。for已經自動幫你換i值
06/04 17:39, 11F

06/04 17:39, 7年前 , 12F
如果今天是用while而不是for那確實常用i=i+1這種方法
06/04 17:39, 12F

06/04 22:47, 7年前 , 13F
了解,謝謝andrew大~那能請教你能否給我一些指點該如
06/04 22:47, 13F

06/04 22:47, 7年前 , 14F
何解決那個error嗎??謝謝。
06/04 22:47, 14F

06/04 23:19, 7年前 , 15F
我不了解nc_open之後你要怎麼處理,看說明是要再接
06/04 23:19, 15F

06/04 23:20, 7年前 , 16F
ncvar_get()取值。你可以再開一個新的文並把一個真實資
06/04 23:20, 16F

06/04 23:21, 7年前 , 17F
料附上,並說明你希望怎麼包裹你取出的值
06/04 23:21, 17F

06/04 23:23, 7年前 , 18F
另外希望你未來貼code時排一下版,目前好醜不容易看
06/04 23:23, 18F

06/05 14:12, 7年前 , 19F
是要取值沒錯,但我現在問題卡在多筆檔案讀不進來,所
06/05 14:12, 19F

06/05 14:12, 7年前 , 20F
以無法做後續取值的動作。
06/05 14:12, 20F

06/05 14:27, 7年前 , 21F
真實的資料檔案在網路上是gz檔,需經過轉檔才能轉成nc
06/05 14:27, 21F

06/05 14:27, 7年前 , 22F
檔,如果andrew大有需要的話,我再把網址貼給你。
06/05 14:27, 22F

06/05 14:31, 7年前 , 23F
不妨只提供一個nc檔就好。因為它的內容會決定之後用什
06/05 14:31, 23F

06/05 14:31, 7年前 , 24F
麼容器來包裹它較恰當方便。當然也可以直接用list
06/05 14:31, 24F

06/05 14:41, 7年前 , 25F

06/05 14:41, 7年前 , 26F
p.reanalysis2.pressure.html
06/05 14:41, 26F

06/05 14:55, 7年前 , 27F
網址好像被截斷無法連上,還煩請andrew大到我之前發的
06/05 14:55, 27F

06/05 14:56, 7年前 , 28F
文(標題:dimensions of z are not length(x)(-1))這篇
06/05 14:56, 28F

06/05 14:56, 7年前 , 29F
有完整網址及說明,不過這網站上的nc檔和我這篇文用的n
06/05 14:56, 29F

06/05 14:56, 7年前 , 30F
c檔是不一樣就是了。
06/05 14:56, 30F
文章代碼(AID): #1R51dAkC (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1R51dAkC (R_Language)