R 用于环路输出的组合
我想编写一个循环,从三维数组中提取一个表,然后将其作为列顺序写入数据帧 到目前为止,我掌握的代码是R 用于环路输出的组合,r,for-loop,dataframe,netcdf,cbind,R,For Loop,Dataframe,Netcdf,Cbind,我想编写一个循环,从三维数组中提取一个表,然后将其作为列顺序写入数据帧 到目前为止,我掌握的代码是 library(ncdf4) test <- nc_open("NorESM_TREFHT_cont_mem1-60_2006-2099.nc") temp <- ncvar_get(test, "TREFHT", count = c(144,96,60,1)) drop(temp) lat<- ncvar_get(test, "lat") lon <- ncvar_ge
library(ncdf4)
test <- nc_open("NorESM_TREFHT_cont_mem1-60_2006-2099.nc")
temp <- ncvar_get(test, "TREFHT", count = c(144,96,60,1))
drop(temp)
lat<- ncvar_get(test, "lat")
lon <- ncvar_get(test,"lon")
lonlat <- expand.grid(lon, lat)
for (n in 1:60) {
member <- array(temp[1:144,1:96,n])
ensemble <- as.vector(member)
h <- data.frame(cbind(lonlat, ensemble[n]))
}
库(ncdf4)
测试您的h
尚未使用;换句话说,没有用。您可能希望在n
的每个步骤中,将变量emble
添加到lonlat
数据中。所以你的代码应该是lonlat,我想你那里的函数不是R的基本函数。你能告诉我们它们来自哪个包吗?我正在使用包ncdf4c处理netCDF4文件。你还可以创建一个测试示例吗?我无法重新创建您的问题,因为我无法访问该.nc文件。此解决方案运行良好。我想知道你是否可以进一步说明h是无用的。我是一个新的r用户,我不完全了解r@Dylan中对象的一些动态。每次执行for loop
时,它都是“重新分配”对象h
。因此,它是在“写”自己,因此您只剩下最后一个输出n=60