这段代码单独可以运行的原因是因为它使用了指定的year值进行筛选和选择操作。但是,如果将这段代码放在循环中使用,其中的year值将会发生变化,导致筛选操作无法正确执行,因此day2会变为空。

为了解决这个问题,你可以在循环中使用一个变量来保存每次的year值,并在筛选操作中使用该变量。例如:

for (year in unique(df$year)) {
  day1 <- df %>%
    filter(year == year, StageName == "sowing") %>%
    select(simulation_days)
  
  day2 <- df %>%
    filter(year == year+1 & StageName == "maturity") %>%
    select(simulation_days)
  
  # 在这里使用day1和day2进行后续操作
}

通过这种方式,每次循环都会使用不同的year值进行筛选操作,保证了day2的正确性。

为什么这段代码单独可以运行放在循环里day2就是空的怎么改day1 - df filteryear == year StageName == sowing selectsimulation_days day2 - df filteryear == year+1 &StageName == maturity selectsimulation_days

原文地址: https://www.cveoy.top/t/topic/hUNv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录