以下是一个可以实现你要求的R代码示例:

# 设置文件夹路径
folder_path <- "your_folder_path"

# 获取文件夹内所有文件的文件名
file_names <- list.files(folder_path, pattern = "\\.csv$", full.names = TRUE)

# 创建一个空的数据框用于保存结果
result <- data.frame()

# 循环处理每个文件
for (file_name in file_names) {
  # 读取文件
  data <- read.csv(file_name)
  
  # 提取年份
  year <- as.numeric(substr(file_name, nchar(file_name)-7, nchar(file_name)-4))
  
  # 计算平均温度
  avg_temperature <- mean(data$temperature)
  
  # 计算降雨之和
  total_rainfall <- sum(data$rainfall)
  
  # 计算初始和成熟时土壤水分差值
  moisture_diff <- data$soil_moisture[which.max(data$growth_stage == "成熟时")] - data$soil_moisture[which.max(data$growth_stage == "初始时")]
  
  # 将结果添加到数据框
  result <- rbind(result, data.frame(Year = year, Avg_Temperature = avg_temperature, Total_Rainfall = total_rainfall, Moisture_Diff = moisture_diff))
  
  # 提取成熟时的产量
  yield <- data$yield[data$growth_stage == "成熟时"]
  
  # 将成熟时的产量保存到新的csv文件中
  output_file <- paste0("yield_", year, ".csv")
  write.csv(yield, file = output_file, row.names = FALSE)
}

# 将结果按年份保存到新的csv文件中
write.csv(result, file = "result.csv", row.names = FALSE)

请将"your_folder_path"替换为你实际的文件夹路径。此代码假设每个表格包含了一个名为"temperature"的温度列,一个名为"rainfall"的降雨列,一个名为"growth_stage"的生长阶段列,一个名为"soil_moisture"的土壤水分列,以及一个名为"yield"的产量列

写一段R代码实现循环计算文件夹中每个表格内作物生长季内的平均温度降雨之和初始和成熟时土壤水分差值并将其按年份提取出来同时将成熟时的产量提取出来保存在一个新的csv文件中。

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

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