→ andrew43: 你說的我可以明白。不過你的code還是有些莫名其妙之處。01/25 08:33
→ andrew43: 例如我先前說過的,以及有些物件被多次定義,還有些未定01/25 08:36
→ andrew43: 義物件。01/25 08:36
→ AndrewShi: andrew大是指obs和rnnmm被多次定義嗎?!可是我每算一次01/26 01:23
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.194.25
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1548316570.A.867.html
→ andrew43: for loop中你用了j <- j + 1; i <- i + 1之類的應該錯了01/24 17:02
→ andrew43: for(i in 1:3)就是每一圈會自動讓i+1啊,不必自己手動。01/24 17:03
→ andrew43: 最終目標rnnmm.mean應該也要是一個60*81的matrix,不是01/24 17:04
→ andrew43: 一個單一值。你目前只有單一值會被記錄。01/24 17:04
→ andrew43: 應該要寫成rnnmm.mean[i,j] <- mean(rnnmm)才行。01/24 17:05
→ andrew43: climdexInput.raw()和climdex.rnnmm()怎麼使用我不了解01/24 17:06
→ andrew43: 但看來climdexInput.raw()你也沒有正確使用它,請看手冊01/24 17:07
→ AndrewShi: 了解,不過andrew大,我改成你說的那樣反而出現error。01/25 00:54
→ AndrewShi: 出來的值就會被丟到矩陣裡應該沒問題吧?!未被定義的是?01/26 01:28
推 andrew43: 你開新的session只跑你的code看看吧01/26 07:22
→ AndrewShi: 跑是可以跑,只是print(rnnmm.mean)出來只會有一個值。01/26 13:59
推 andrew43: 只有一個值的問題我前面提過,你可以修看看。01/26 14:55[程式範例]:
※ 編輯: AndrewShi (180.217.114.34), 01/26/2019 16:50:03
※ 編輯: AndrewShi (180.217.114.34), 01/26/2019 17:02:59
※ 編輯: AndrewShi (180.217.114.34), 01/26/2019 17:05:05
→ AndrewShi: andrew大~我最多就只想到改成上面那樣,還煩請你指點了 01/26 17:11
※ 編輯: AndrewShi (180.217.114.34), 01/26/2019 17:15:38
→ andrew43: Error: object 'CI_output' not found 01/26 21:13
※ 編輯: AndrewShi (180.217.114.34), 01/26/2019 22:39:43
→ andrew43: rnnmm.mean <- 改 rnnmm.mean[i,j] <- ,之前也有說過。 01/26 22:52
→ andrew43: mean(rnnmm)視情況可以改成mean(rnnmm, na.rm = T) 01/26 22:53
→ andrew43: 看來算得很慢且都是NA,我沒等到跑完就沒耐心了。你試試 01/26 22:54
→ andrew43: 如果有錯,不要只重跑for的部分,要全部重跑 01/26 22:55
→ AndrewShi: andrew大~我會出現這個error,我是用另一個觀測資料, 01/27 01:21
→ AndrewShi: 所以變數名稱不同,且有重跑。 01/27 01:22
→ Gjerry: rnnmm.mean[I, j]是矩陣裡面的一格 01/27 11:25
→ Gjerry: 你直接指定一個矩陣給他,所以發生錯誤 01/27 11:26
→ AndrewShi: 了解,我有成功跑出來了,非常謝謝andrew大^^ 01/27 13:22
→ AndrewShi: andrew大~不好意思想再請教你,我今天下午的確有跑成功 01/27 21:55
→ AndrewShi: 但當我改變數名稱之後再去跑就會出現下圖中最上面和最 01/27 21:56
→ AndrewShi: 下面的這兩個錯誤,我有上網查錯誤訊息,好像for迴圈常 01/27 21:59
→ AndrewShi: 會跑出下面這個錯誤訊息,還是是我改的程式碼還是有問 01/27 22:00
→ AndrewShi: 題呢?? 01/27 22:01
→ AndrewShi: 我有重跑和重開R跑過,但都還是會出現上面那兩個error 01/27 22:06
→ andrew43: 衷心給你一個建議,找一本書好好從基本功開始。 01/27 22:35
→ andrew43: 你在指定i*j大小矩陣時,你真的確定i和j當下是多少嗎? 01/27 22:38
→ andrew43: 特別是之前的for loop並沒有成功。 01/27 22:38
→ andrew43: 最後錯誤訊息的意思如同五個資料塞到三個格子不夠塞 01/27 22:41
→ AndrewShi: 不瞞andrew大,老實說我有2本R的書(輕鬆學習R語言.R錦 01/28 01:01
→ AndrewShi: 囊妙計),前面這本我幾乎整本看完,裡面介紹的指令我也 01/28 01:03
→ AndrewShi: 都有try過,但我覺得書比如介紹矩陣的部分都太粗淺,我 01/28 01:06
→ andrew43: 這二本書我印像中都不錯。個人感覺你有些很基礎的概念學 01/28 01:07
→ andrew43: 沒到位。例如最後這個問題,其實當下檢查i和j就解開了。 01/28 01:08
→ AndrewShi: 們真正在寫.應用的程式碼都複雜很多,不過我也承認我基 01/28 01:12
→ AndrewShi: 我知道,i.j不就是我資料經.緯度的維度嗎?! 01/28 01:15
→ andrew43: i和j被你用在for之中,但你之前的for根本沒跑完,所以 01/28 01:16
→ andrew43: i和j可能都還只是1。 01/28 01:16
→ andrew43: 因此你應該用length(obs_lat)之類的東西來指定矩陣尺度 01/28 01:17
→ andrew43: 在看到最後一個warning時應馬上檢查dim(CI.rnnmm.mean) 01/28 01:18
→ andrew43: 你不應把i當成經度個數,而要把它當成for之中變來變去的 01/28 01:20
→ andrew43: 變數。誰知道它變到最後是不是一定變到終點? 01/28 01:21
→ andrew43: 又如果哪天你希望for中i從大變到小,那最後i是1,怎辦? 01/28 01:22
→ AndrewShi: 了解,我好像懂了,我說一下我的理解不確定對不對。 01/28 16:49
→ AndrewShi: 一開始先創一個跟資料總長度一樣大的矩陣(都塞NA值), 01/28 16:52
→ AndrewShi: 之後再算選定(i.j)網格點的值,算完之後再把值填到原先 01/28 16:54
→ AndrewShi: 創的矩陣裡。 01/28 16:55
→ andrew43: for結束後CI_rnnmm_mean不用再「塞到同樣大小的矩陣裡」 01/28 17:27
→ andrew43: 那列code打了等於白打,就好像說了a=1再說a=a一樣沒意義 01/28 17:29
→ andrew43: 如果都沒有出錯,記得拿筆資料手動驗算一下。 01/28 17:30
→ AndrewShi: 了解,謝謝andrew大 01/28 21:03