R_Language 板


LINE

[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 繼上篇發文一樣想請問當出現the dims contain missing values這個錯誤訊息時該如何 解決??而繼上篇發文的最後的推文後,我試了把兩年的資料讀進去去跑,但還是出現同樣 的錯誤訊息。 因截取問題部分的程式碼會跑出不同的錯誤訊息,且錯誤訊息追回源頭還是需要放資料( 檔案)進去,所以我就把完整的程式碼貼上來了(當然不需要的部分還是有刪掉),我想要 解決的問題就是能讓這一完整的程式碼跑完都不出錯並輸出結果(因為這一完整的程式碼 是別人寫好的一個package(Climdown,公開的))。 而需要放入的資料(檔案)和其他程式碼我放到下面這個google雲端硬碟的共用資料夾裡( 如無法進入資料夾或下載檔案煩請推文告知),謝謝。 https://drive.google.com/drive/folders/1aI7SnSxJzIIkN9H9QjL8vMv3wF-WSpv5?usp= sharing 其中有一段程式碼會跑需要大概半小時,先行告知。 (ps:如需要Climdown這個package的GitHub網址可在推文告知,可再貼上來)。 希望有大大願意幫忙或是提點我可能是哪裡出了問題,我在程式這塊目前還是新手,所以 抱歉有時候會不太懂你們說的意思,還煩請你們解釋的詳細(白話)一點,真的非常謝謝你 們。 [程式範例]: # Read fine-scale grid and spatially aggregate to GCM grid rm(list=ls()) library(ncdf4) library(RNetCDF) library(doParallel) library(PCICt) source("C:\\Users\\TOM\\Desktop\\R(code)\\降尺度\\netcdf.calendar.R") config <- commandArgs(trailingOnly=TRUE) if(length(config)==0) config <- "C:\\Users\\TOM\\Desktop\\R(code)\\降尺度 \\BCSD.config.R" print(readLines(config)) source(config) mc.cores<-4 registerDoParallel(mc.cores,cores=NULL) nc.obs.file<-"C:\\Users\\TOM\\Desktop\\R(資料庫)\\TRMM資料\\trmm_1998.nc" nc.obs <- nc_open(nc.obs.file) pr.nc.file<-"C:\\Users\\TOM\\Desktop\\R(資料庫)\\降尺度資料 \\pr_Amon_CCSM4_historical_e1i1p1_185001-200512+rcp45_r2i1p1_200601-210012.nc" nc.gcm <- nc_open(pr.nc.file) # Read fine-scale and GCM grid dimensions obs.lon <- ncvar_get(nc.obs,"longitude") obs.lat <- ncvar_get(nc.obs,"latitude") obs.time <- ncvar_get(nc.obs,"time") n.lon <- length(obs.lon) n.lat <- length(obs.lat) obs.lats <- matrix(obs.lat, nrow=n.lon, ncol=n.lat, byrow=TRUE) obs.lons <- matrix(obs.lon, nrow=n.lon, ncol=n.lat) #obs.time <- netcdf.calendar(nc.obs) obs.time <- matrix(seq(as.Date("1998-01-01"), as.Date("1998-12-31"),1)) gcm.lon <- ncvar_get(nc.gcm, 'lon')-360 gcm.lat <- ncvar_get(nc.gcm, 'lat') gcm.lats <- matrix(gcm.lat, ncol=length(gcm.lat), nrow=length(gcm.lon), byrow=TRUE) gcm.lons <- matrix(gcm.lon, ncol=length(gcm.lat), nrow=length(gcm.lon)) gcm.lons.lats <- cbind(c(gcm.lons), c(gcm.lats)) gcm.time <- netcdf.calendar(nc.gcm) nc_close(nc.gcm) # Figure out which GCM grid boxes are associated with each fine-scale grid point # Confine search to 15 deg. x 15 deg. neighbourhood dxy <- 15 mdist <- function(x, y) apply(abs(sweep(data.matrix(y), 2, data.matrix(x), '-')), 1, sum) nn <- foreach(i = seq_along(obs.lons)) %dopar% { if((i %% 500)==0) cat(i, '') gcm.lims <- ((gcm.lons.lats[,1] >= (obs.lons[i]-dxy)) & (gcm.lons.lats[,1] <= (obs.lons[i]+dxy))) & ((gcm.lons.lats[,2] >= (obs.lats[i]-dxy)) & (gcm.lons.lats[,2] <= (obs.lats[i]+dxy))) gcm.lims <- which(gcm.lims) nn.min <- which.min(mdist(c(obs.lons[i], obs.lats[i]), gcm.lons.lats[gcm.lims,])) gcm.lims[nn.min] } nn <- unlist(nn) gridpoints <- sort(unique(nn)) cat('\n') # Spatially aggregate the fine-scale data to the GCM grid pr.aggregate <- matrix(NA, nrow=nrow(obs.time), ncol=length(gcm.lons)) i.starts <- sapply(split(seq_along(obs.time[,1]), obs.time[,1]), min) i.lengths <- sapply(split(seq_along(obs.time[,1]), obs.time[,1]), length) for(i in seq_along(i.starts)){ cat(obs.time[i.starts[i],], '\n') pr.obs <- ncvar_get(nc.obs, varid='r', start=c(1, 1, i.starts[i]), count=c(n.lon, n.lat, i.lengths[i])) dim(pr.obs) <- c(prod(dim(pr.obs)[1:2]), dim(pr.obs)[3]) pr.agg <- matrix(NA, nrow=i.lengths[i],ncol=length(gcm.lons)) all.agg <- foreach(j=1:length(gridpoints)) %dopar% { point <- gridpoints[j] cbind(apply(pr.obs[nn==point,], 2, mean, trim=0.1, na.rm=TRUE) ) } all.agg <- do.call(cbind, all.agg) pr.all.agg <- all.agg[,c(TRUE, FALSE, FALSE, FALSE)] pr.agg[,gridpoints] <- pr.all.agg pr.agg[is.nan(pr.agg)] <- NA pr.aggregate[i.starts[i]:(i.starts[i]+i.lengths[i]-1),] <- pr.agg } nc_close(nc.obs) save(gcm.lons, file=paste(output.dir, 'gcm.lons', output.suffix, '.RData', sep='')) save(gcm.lats, file=paste(output.dir, 'gcm.lats', output.suffix, '.RData', sep='')) save(gcm.time, file=paste(output.dir, 'gcm.time', output.suffix, '.RData', sep='')) save(obs.lons, file=paste(output.dir, 'obs.lons', output.suffix, '.RData', sep='')) save(obs.lats, file=paste(output.dir, 'obs.lats', output.suffix, '.RData', sep='')) save(obs.time, file=paste(output.dir, 'obs.time', output.suffix, '.RData', sep='')) save(pr.aggregate, file=paste(output.dir, 'pr.aggregate', output.suffix, '.RData', sep='')) [環境敘述]: https://imgur.com/nVXlvbb [關鍵字]: dim 遺失值 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.136.23
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1533287357.A.49F.html







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP