如何按year和location合并R数据框行并计算x的平均值?
按年份和地点合并数据并计算x的平均值
你需要按year和location分组,对每组的x值求平均,合并为对应分组的唯一行。以下是两种实用的实现方式:
方法一:基础R原生函数实现
使用aggregate()函数可以直接完成分组聚合:
# 按year和location分组,计算x的平均值 result_aggregate <- aggregate(x ~ year + location, data = data, FUN = mean) # 查看结果 print(result_aggregate)
执行后输出结果:
year location x 1 2000 1 1.5 2 2001 1 5.5 3 2002 1 9.5 4 2000 2 3.5 5 2001 2 7.5 6 2002 2 11.5
方法二:dplyr包实现(语法更简洁直观)
如果习惯使用管道式语法,推荐用dplyr包:
# 首次使用需安装包 # install.packages("dplyr") library(dplyr) # 分组计算平均值,最后取消分组状态 result_dplyr <- data %>% group_by(year, location) %>% summarise(x = mean(x), .groups = "drop") # 查看结果 print(result_dplyr)
该方法输出结果和基础R方法完全一致,.groups = "drop"参数用于将分组后的结果转换为普通数据框。
内容的提问来源于stack exchange,提问作者Tilman
相关产品推荐
相关产品推荐

