首页 > 解决方案 > R代码调试:未创建循环中的命名值

问题描述

我正在使用由另一个人编写的一大段代码,在此处找到。有两部分,第二部分取决于在lyVCI第一部分中创建的命名值。第一部分的原始代码是:

if ((exists("AnalysisPeriod") && (sy > AnalysisPeriod[1] && sy < AnalysisPeriod[2])) || exists("AnalysisPeriod") == F){
  
   if (!(sy == max(as.numeric(YEARs)) && hemisphere == 0)){
    
    #Check for hemisphere, load VCI data for the season
    if (hemisphere == 1){
      lyVCI <- allVCI[grepl(sy,allVCI)]
      dscr <- sy
    }else{
      #Load correct data if southern hemisphere was selected (seasonality shift)
      lyVCI <- c(allVCI[grepl(sy,allVCI)],allVCI[grepl(sy+1,allVCI)])
      #Adjusting output filenames if southern hemisphere was selected
      if (sy == min(as.numeric(YEARs))){
        lyVCI <- lyVCI[1:23]
      }else{
        lyVCI <- lyVCI[13:35]
      }  
      #Adjusting output filenames if southern hemisphere was selected
      dscr <- paste0(sy,"_",sy+1)
    }

第二个的代码是:

yVCI <- stack(lyVCI)

我认识到我需要在第一个块的末尾再添加三个大括号。同样,我已经切换了半球,因为我的数据位于北半球而不是南半球。但是,当我运行代码时,这不会创建 value lyVCI,而是显示以下错误消息。

h(simpleError(msg,call))中的错误:在为函数“stack”选择方法时评估参数“x”时出错:找不到对象“lyVCI”

任何建议将不胜感激。

标签: r

解决方案


推荐阅读