R语言 用for循环统计5个含"pre_lake"字段的表格中,Lake分别为1,2,3,4时对应BGA列的平均值、中位值
时间: 2024-10-23 16:19:07 浏览: 6
Python库 | pre_commit-0.15.1-py2.py3-none-any.whl
在R语言中,你可以使用`for`循环遍历这五个包含"pre_lake"字段的表格,并分别计算当Lake等于1, 2, 3, 和 4 时"BGA"列的平均值和中位数。假设你的数据存储在一个列表`data_list`,每个元素都是一个数据框(`data.frame`),步骤如下:
```r
# 假设 data_list 包含你的五个数据框
data_list <- list(data1, data2, data3, data4, data5) # 替换为实际的数据表
# 定义一个函数,用于计算单个数据框中特定湖对应的BGA列指标
calc_stats <- function(df, lake) {
BGA_stats <- df[df$pre_lake == lake, "BGA"]
# 计算平均值和中位数
avg_value <- mean(BGA_stats)
median_value <- median(BGA_stats)
return(list(avg = avg_value, median = median_value))
}
# 初始化空列表来保存结果
results <- vector("list", length = 4)
# 使用 for 循环处理每个数据框
for (i in 1:4) {
stats_result <- calc_stats(data_list[[i]], i + 1) # 加1是因为 Lake 列的索引从1开始
results[[i]] <- stats_result
}
# 结果存储在 results 列表中
results
```
阅读全文