这是什么错误:Error in h! Problem with filter input 1i Input 1 is StageName in csowing maturityx object StageName not found怎么修改这段代码df - freadEtrainingdatawheatOUTfile75csvBeijing_beijingcsvheaddf# 根据生长阶段筛选数
这段代码有几个错误:
- 在筛选数据时,应该使用
filter()函数,而不是df()函数。正确的代码应该是:
growth_season_data <- df %>% filter(StageName %in% c("sowing", "maturity"))
- 在计算播种到成熟阶段的平均温度时,应该使用
growth_season_data而不是data。正确的代码应该是:
avg_temperature <- mean(growth_season_data$MaxT)
- 在计算播种到成熟阶段的降雨总量时,应该使用
growth_season_data而不是data。正确的代码应该是:
rainfall_sum <- sum(growth_season_data$Rain)
- 在计算播种和成熟时的土壤水分差值时,应该使用
growth_season_data$StageName而不是growth_season_data$GrowthStage。正确的代码应该是:
seeding_soil_moisture <- sum(growth_season_data$sw[growth_season_data$StageName == "sowing" & growth_season_data$layer %in% c("sw(1)", "sw(2)", "sw(3)", "sw(4)", "sw(5)", "sw(6)")], na.rm = TRUE)
mature_soil_moisture <- sum(growth_season_data$sw[growth_season_data$StageName == "maturity" & growth_season_data$layer %in% c("sw(1)", "sw(2)", "sw(3)", "sw(4)", "sw(5)", "sw(6)")], na.rm = TRUE)
- 在提取成熟时的产量时,应该使用
growth_season_data$StageName而不是growth_season_data$GrowthStage。正确的代码应该是:
yield <- sum(growth_season_data$Yield[growth_season_data$StageName == "maturity"])
- 在将结果添加到结果数据框时,
year变量未定义。你需要为year变量赋值。例如,如果你想使用df数据框中的Year列,可以使用以下代码:
year <- df$Year
- 最后一个问题是,在将结果保存到CSV文件时,你应该使用
write.csv()函数而不是write_csv()函数。正确的代码应该是:
write.csv(result, file = "E:/trainingdata/wheatOUTfile/75csv/output.csv", row.names = FALSE)
修改后的代码如下所示:
df <- fread('E:/trainingdata/wheatOUTfile/75csv/Beijing_beijing.csv')
head(df)
# 根据生长阶段筛选数据
growth_season_data <- df %>% filter(StageName %in% c("sowing", "maturity")) # 生长季定义为播种和成熟阶段
# 计算播种到成熟阶段的平均温度
avg_temperature <- mean(growth_season_data$MaxT)
# 计算播种到成熟阶段的降雨总量
rainfall_sum <- sum(growth_season_data$Rain)
# 计算播种和成熟时的土壤水分差值
seeding_soil_moisture <- sum(growth_season_data$sw[growth_season_data$StageName == "sowing" & growth_season_data$layer %in% c("sw(1)", "sw(2)", "sw(3)", "sw(4)", "sw(5)", "sw(6)")], na.rm = TRUE)
mature_soil_moisture <- sum(growth_season_data$sw[growth_season_data$StageName == "maturity" & growth_season_data$layer %in% c("sw(1)", "sw(2)", "sw(3)", "sw(4)", "sw(5)", "sw(6)")], na.rm = TRUE)
soil_moisture_diff <- mature_soil_moisture - seeding_soil_moisture
# 提取成熟时的产量
yield <- sum(growth_season_data$Yield[growth_season_data$StageName == "maturity"])
# 提取成熟时的产量
result <- data.frame(Year = numeric(),
AvgTemperature = numeric(),
RainfallSum = numeric(),
SoilMoistureDiff = numeric(),
Yield = numeric(),
GDD = numeric(),
SoilMoistureSum = numeric())
year <- df$Year
# 将结果添加到结果数据框
result <- rbind(result, cbind(Year = year,
AvgTemperature = avg_temperature,
RainfallSum = rainfall_sum,
SoilMoistureDiff = soil_moisture_diff,
Yield = yield,
GDD = gdd))
# 保存结果到CSV文件
write.csv(result, file = "E:/trainingdata/wheatOUTfile/75csv/output.csv", row.names = FALSE)
请注意,代码中的gdd变量并未定义。你可能需要根据你的需求为其赋值
原文地址: http://www.cveoy.top/t/topic/hSCv 著作权归作者所有。请勿转载和采集!