Re: [問題] 兩層for迴圈問題
我不是很明白 nc 檔你想怎麼處理,
所以這篇只簡單說明一次讀入多個 nc 檔怎麼把它們「儲存在同一個 list 裡面」。
假設有 2 * 24 個 nc 檔案,檔名叫
01-00.nc 01-01.nc 01-02.nc ... 01-23.nc 02-00.nc ... 02-23.nc
library(magrittr)
library(stringr)
library(ncdf4)
dt <-
data.frame(
day = gl(2, 24, labels = (1:2) %>% str_pad(2, pad = "0")),
hour = gl(24, 1, labels = (0:23) %>% str_pad(2, pad = "0"))
)
dt$filename <- paste0(dt$day, "-", dt$hour, ".nc")
nc.res <- vector("list", nrow(dt))
names(nc.res) <- dt$filename
for(i in dt$filename){
nc.res[[i]] <- nc_open(i)
}
則 nc.res 為所求,而 dt 可方便對照檔名與日期時間。
之後對 nc.res 的呼叫就和一般 list 一樣了,
例如 nc.res[[1]] 或 nc.res$`01-00.nc` 之類的。
你也可能需要用到 lapply() 方便操作 list。
※ 引述《AndrewShi (沒有妳的我)》之銘言:
: [問題類型]:
: 程式諮詢(我想用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), 來自: 60.248.222.1
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1528254529.A.9B0.html
推
06/06 17:34,
7年前
, 1F
06/06 17:34, 1F
→
06/06 17:34,
7年前
, 2F
06/06 17:34, 2F
→
06/06 18:00,
7年前
, 3F
06/06 18:00, 3F
推
06/06 18:05,
7年前
, 4F
06/06 18:05, 4F
→
06/06 18:05,
7年前
, 5F
06/06 18:05, 5F
→
06/06 18:05,
7年前
, 6F
06/06 18:05, 6F
→
06/06 18:21,
7年前
, 7F
06/06 18:21, 7F
→
06/06 18:22,
7年前
, 8F
06/06 18:22, 8F
推
06/06 19:33,
7年前
, 9F
06/06 19:33, 9F
推
06/06 21:55,
7年前
, 10F
06/06 21:55, 10F
推
06/10 01:09,
7年前
, 11F
06/10 01:09, 11F
→
06/10 01:09,
7年前
, 12F
06/10 01:09, 12F
→
06/10 01:09,
7年前
, 13F
06/10 01:09, 13F
→
06/10 01:09,
7年前
, 14F
06/10 01:09, 14F

→
06/10 22:08,
7年前
, 15F
06/10 22:08, 15F
→
06/10 22:08,
7年前
, 16F
06/10 22:08, 16F
→
06/10 22:19,
7年前
, 17F
06/10 22:19, 17F
→
06/10 22:19,
7年前
, 18F
06/10 22:19, 18F
推
06/11 02:20,
7年前
, 19F
06/11 02:20, 19F
→
06/11 02:20,
7年前
, 20F
06/11 02:20, 20F
→
06/11 02:20,
7年前
, 21F
06/11 02:20, 21F
→
06/11 02:20,
7年前
, 22F
06/11 02:20, 22F
→
06/11 02:20,
7年前
, 23F
06/11 02:20, 23F
→
06/11 08:04,
7年前
, 24F
06/11 08:04, 24F
推
06/11 17:28,
7年前
, 25F
06/11 17:28, 25F
→
06/11 17:28,
7年前
, 26F
06/11 17:28, 26F
→
06/11 17:46,
7年前
, 27F
06/11 17:46, 27F
→
06/11 17:48,
7年前
, 28F
06/11 17:48, 28F
推
06/12 17:15,
7年前
, 29F
06/12 17:15, 29F
→
06/12 20:15,
7年前
, 30F
06/12 20:15, 30F
推
06/13 22:50,
7年前
, 31F
06/13 22:50, 31F
討論串 (同標題文章)
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章