读取数据文件\n df <- fread("E:/trainingdata/wheatOUTfile/75csv/Hebei_bazhou.csv")\n\n # 提取起始年份和结束年份\n start_year <- 1981\n end_year <- 2019\n\n # 创建一个空的结果数据框\n result <- data.frame(Year = integer(), Avg_Temperature = numeric(), Total_Rainfall = numeric(), gdd = numeric(), yield_at_maturity = numeric())\n\n # 循环计算1981-2019年的结果\n for (year in start_year:end_year) {\n # 提取播种日期(day1)和成熟日期(day2)\n day1 <- df %>%\n filter(year == year, StageName == "sowing") %>%\n select(simulation_days)\n \n day2 <- df %>%\n filter(year == year+1, StageName == "maturity") %>%\n select(simulation_days)\n \n # 计算平均温度\n avg_temperature <- df %>%\n filter(simulation_days >= day1[[1]] & simulation_days <= day2[[1]]) %>%\n summarize(Avg_Temperature = mean(MaxT, na.rm = TRUE))\n \n # 计算总降雨量\n total_rainfall <- df %>%\n filter(simulation_days >= day1[[1]] & simulation_days <= day2[[1]]) %>%\n summarize(Total_Rainfall = sum(Rain, na.rm = TRUE))\n \n # 计算gdd\n gdd <- df %>%\n filter(simulation_days >= day1[[1]] & simulation_days <= day2[[1]]) %>%\n summarize(gdd = sum((MaxT+MinT)/2, na.rm = TRUE))\n \n # 提取成熟时的产量\n yield_at_maturity <- df %>%\n filter(year == year+1, StageName == "maturity") %>%\n select(yield)\n \n # 将结果添加到结果数据框中\n result <- rbind(result, data.frame(Year = year, Avg_Temperature = avg_temperature$Avg_Temperature, Total_Rainfall = total_rainfall$Total_Rainfall, gdd = gdd$gdd, yield_at_maturity = yield_at_maturity$yield))\n}\n\n # 将结果保存到文件\n write.csv(result, "E:/trainingdata/wheatOUTfile/75csv/Hebei_bazhouOUT.csv", row.names = FALSE)


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

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