使用magic_for函数

时间:2019-03-14 07:12:19

标签: r nested-loops

我正在使用的数据集列表:- 1.气候数据的.nc文件 2.具有纬度和经度的城市列表(53),用于从.nc文件中检索数据 3.工作代码: 我已经通过使用magic_for循环成功检索了53个城市的数据,因此目前可以保存.nc文件的路径并使用magic_for函数检索tasmin,tasmax,pr和tas等变量的每日值。这些文件中的每个文件都具有2006-2100年期间的单个变量数据。 4.问题: 现在,对于一个具有19个.nc文件(每个5年)的模型,与以前的1个文件(95年)不同。因此,我想使用上述工作程序运行19次。 5.验证码:- 工作:

tasfilepath<-paste0("path.nc")
model1<-nc_open(tasfilepath)
lonmodel1<-ncvar_get(model1, varid = 'lon')
latmodel1<-ncvar_get(model1, varid = 'lat')
timemodel1<-nc.get.time.series(model1, v="tasmin", time.dim.name = "time")
input<-read.xlsx(file = "cities_1.xlsx", sheetName = "Sheet1")
i<-length(col(input[1]))
magic_for(print1, silent = TRUE)
for (j in 1:i)
{
  alat<-which.min(abs(latmodel1-input[j,2]))
  alon<-which.min(abs(lonmodel1-input[j,3]))
  temp<-nc.get.var.subset.by.axes(model1, "tasmin", axis.indices = list(X=alon, Y=alat))
print1(temp) 
}
df0<-magic_result_as_dataframe()

不起作用:

input0<-read.xlsx(file = "sheet with path addresses of .nc files.xlsx")
    i0<-length(col(input0[1]))
    magic_for(print2, silent = TRUE)
    for(k in 1:i0)
    {
        tasfilepath<-paste0(input0[k,2])
        model1<-nc_open(tasfilepath)
        lonmodel1<-ncvar_get(model1, varid = 'lon')
        latmodel1<-ncvar_get(model1, varid = 'lat')
        timemodel1<-nc.get.time.series(model1, v="tasmin", time.dim.name = "time")
        input<-read.xlsx(file = "cities_1.xlsx", sheetName = "Sheet1")
        i<-length(col(input[1]))
        magic_for(print1, silent = TRUE)
        for (j in 1:i)
          {
            alat<-which.min(abs(latmodel1-input[j,2]))
            alon<-which.min(abs(lonmodel1-input[j,3]))
            temp<-nc.get.var.subset.by.axes(model1, "tasmin", axis.indices = list(X=alon, Y=alat))
            print1(temp)
        }
        df0<-magic_result_as_dataframe()
        print2(df0)
    }
    df1<-magic_result_as_dataframe()

错误-错误(函数(...,row.names = NULL,check.rows = FALSE,check.names = TRUE,:参数表示行数不同:53,19 备择方案: 即使我可以创建19个数据帧并将它们绑定在一起,我的问题也将得到解决。 问候

0 个答案:

没有答案