[問題] 將資料時間按月份計算(迴圈)
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
這筆資料為2010年全球的降雨資料,資料可從這裡取得:http://0rz.tw/JI056,資料的時
間格式為24小時一筆,總共365筆,現在我想先把時間的格式轉成年月日(如:2010-01-01)
,再判斷日期的月份來做計算(迴圈),之前有大大解答我是用apply的做法,我也知道在
R裡用apply會比用迴圈來的有效率,不過我想用自己理解的邏輯來寫迴圈做練習,而下面
我所寫的迴圈我知道其中一個問題是time1的維度還是365(雖然數字變成1~12),我不知道
該怎麼把time1(按月份分好的365天)放到一個12格的矩陣裡,所以想請教各位大大下面的
迴圈該如何修改才正確呢??謝謝。
[程式範例]:
rm(list=ls())
library(ncdf4)
library(data.table)
TRMM_data <- "C:\\Users\\TOM\\Desktop\\R(資料庫)\\TRMM資料\\trmm_2010.nc"
obs <- nc_open(TRMM_data)
print(obs)
lon <- ncvar_get(obs,"lon")
lat <- ncvar_get(obs,"lat")
time <- ncvar_get(obs,"time")
precip <- ncvar_get(obs,"r")
nc_close(obs)
for(tmonth in c(1:12)){
  for(time1 in c(1:365)){
    time <- as.Date(time / 24, format = "%Y-%m-%d", origin = "2010-01-01")
    time1 <- strftime(time,format="%Y-%m-%d)
    tmonth <- month(time1)
     if(tmonth==time1){
      precip1 <- precip[,,tmonth]
      precip2 <- array(NA_real_,dim=c(1440,400,12))
       for(i in c(1:1440)){
        for(j in c(1:400)){
         precip2[i,j,1:12] <- mean(precip1[i,j,tmonth])
      }
    }
  }
 }
}
library(sp)
library(RColorBrewer)
image(lon,lat,precip2[,,1],col=rev(brewer.pal(10,"RdBu")))
[環境敘述]:
[關鍵字]:
時間處理   迴圈
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.136.30
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1542102427.A.E65.html
→
11/13 19:28, 
                                7年前
                            , 1F
11/13 19:28, 1F
→
11/13 19:32, 
                                7年前
                            , 2F
11/13 19:32, 2F
→
11/13 19:36, 
                                7年前
                            , 3F
11/13 19:36, 3F
→
11/13 19:40, 
                                7年前
                            , 4F
11/13 19:40, 4F
→
11/13 19:41, 
                                7年前
                            , 5F
11/13 19:41, 5F
→
11/13 19:45, 
                                7年前
                            , 6F
11/13 19:45, 6F
→
11/13 19:45, 
                                7年前
                            , 7F
11/13 19:45, 7F
→
11/13 19:45, 
                                7年前
                            , 8F
11/13 19:45, 8F
→
11/13 19:45, 
                                7年前
                            , 9F
11/13 19:45, 9F
→
11/13 20:37, 
                                7年前
                            , 10F
11/13 20:37, 10F
→
11/13 20:38, 
                                7年前
                            , 11F
11/13 20:38, 11F
→
11/13 20:38, 
                                7年前
                            , 12F
11/13 20:38, 12F
→
11/13 20:41, 
                                7年前
                            , 13F
11/13 20:41, 13F
→
11/14 01:51, 
                                7年前
                            , 14F
11/14 01:51, 14F
→
11/14 01:51, 
                                7年前
                            , 15F
11/14 01:51, 15F
→
11/14 08:50, 
                                7年前
                            , 16F
11/14 08:50, 16F
→
11/14 12:34, 
                                7年前
                            , 17F
11/14 12:34, 17F
→
11/14 12:34, 
                                7年前
                            , 18F
11/14 12:34, 18F
→
11/14 12:34, 
                                7年前
                            , 19F
11/14 12:34, 19F
抱歉,我可能沒有把想做的事說清楚,我的確是也想把天數和月份做連結,但上面的程式
碼我是想讓它當time1=1,time=1進來迴圈之後,判斷是幾月份的降雨值,如果判斷是1月
,那麼就會等於time1的1,然後就會把判斷為1月份的降雨值做相加。
當time=32的時候,它會判斷為2月(的降雨值),此時time=32就不會等於time1的1,所以
第31個值後面所有的值就都不符合if判斷式,最後跳到time1=2,time=1繼續跑,time=32
才會開始符合條件,之後便是相加2月的降雨值,以此類推,最後再把365天的降雨值放到
12格的盒子裡。
※ 編輯: AndrewShi (110.50.156.45), 11/14/2018 12:50:45
→
11/14 14:08, 
                                7年前
                            , 20F
11/14 14:08, 20F
→
11/14 14:10, 
                                7年前
                            , 21F
11/14 14:10, 21F
→
11/14 14:33, 
                                7年前
                            , 22F
11/14 14:33, 22F
※ 編輯: AndrewShi (110.50.156.45), 11/14/2018 15:44:44
※ 編輯: AndrewShi (110.50.156.45), 11/14/2018 15:45:44
→
11/14 15:52, 
                                7年前
                            , 23F
11/14 15:52, 23F
→
11/14 15:52, 
                                7年前
                            , 24F
11/14 15:52, 24F
→
11/14 15:53, 
                                7年前
                            , 25F
11/14 15:53, 25F
→
11/14 15:53, 
                                7年前
                            , 26F
11/14 15:53, 26F
→
11/14 15:54, 
                                7年前
                            , 27F
11/14 15:54, 27F

→
11/14 16:59, 
                                7年前
                            , 28F
11/14 16:59, 28F
→
11/14 17:03, 
                                7年前
                            , 29F
11/14 17:03, 29F
→
11/14 17:05, 
                                7年前
                            , 30F
11/14 17:05, 30F
→
11/14 17:05, 
                                7年前
                            , 31F
11/14 17:05, 31F
→
11/14 17:06, 
                                7年前
                            , 32F
11/14 17:06, 32F
→
11/14 23:42, 
                                7年前
                            , 33F
11/14 23:42, 33F
→
11/14 23:43, 
                                7年前
                            , 34F
11/14 23:43, 34F
→
11/14 23:43, 
                                7年前
                            , 35F
11/14 23:43, 35F
→
11/14 23:43, 
                                7年前
                            , 36F
11/14 23:43, 36F
→
11/14 23:43, 
                                7年前
                            , 37F
11/14 23:43, 37F
→
11/15 00:03, 
                                7年前
                            , 38F
11/15 00:03, 38F
→
11/15 00:03, 
                                7年前
                            , 39F
11/15 00:03, 39F
→
11/15 00:03, 
                                7年前
                            , 40F
11/15 00:03, 40F
→
11/15 00:05, 
                                7年前
                            , 41F
11/15 00:05, 41F
→
11/15 00:05, 
                                7年前
                            , 42F
11/15 00:05, 42F
→
11/15 00:57, 
                                7年前
                            , 43F
11/15 00:57, 43F
→
11/15 00:59, 
                                7年前
                            , 44F
11/15 00:59, 44F
→
11/15 01:00, 
                                7年前
                            , 45F
11/15 01:00, 45F
→
11/15 01:01, 
                                7年前
                            , 46F
11/15 01:01, 46F
→
11/15 01:02, 
                                7年前
                            , 47F
11/15 01:02, 47F
→
11/15 01:45, 
                                7年前
                            , 48F
11/15 01:45, 48F
→
11/15 17:46, 
                                7年前
                            , 49F
11/15 17:46, 49F
→
11/15 17:47, 
                                7年前
                            , 50F
11/15 17:47, 50F
→
11/15 17:48, 
                                7年前
                            , 51F
11/15 17:48, 51F
→
11/22 12:31, 
                                7年前
                            , 52F
11/22 12:31, 52F
→
11/22 12:31, 
                                7年前
                            , 53F
11/22 12:31, 53F
→
11/22 12:31, 
                                7年前
                            , 54F
11/22 12:31, 54F
→
11/22 17:15, 
                                7年前
                            , 55F
11/22 17:15, 55F
→
11/22 17:15, 
                                7年前
                            , 56F
11/22 17:15, 56F
→
11/22 17:15, 
                                7年前
                            , 57F
11/22 17:15, 57F
推
11/22 20:59, 
                                7年前
                            , 58F
11/22 20:59, 58F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章