如何在R中计算长表数据指定分组下的平均条目数
实现方法
以下提供两种常用的实现方案,你可以根据自己的使用习惯选择:
方案1:使用dplyr包(语法对新手更友好)
首先确保你已经安装了dplyr包,没有安装的话先运行安装命令:install.packages("dplyr")
运行统计代码:
# 加载包 library(dplyr) # 第一步:按Rate、Rep、Plant分组,统计每个分组的块茎数量 per_plant_count <- tuber_data %>% group_by(Rate, Rep, Plant) %>% summarise(tuber_count = n(), .groups = "drop") # 第二步:计算所有单株的块茎平均数量 average_tuber_num <- mean(per_plant_count$tuber_count) # 打印结果 print(average_tuber_num)
说明:代码中的n()会统计每个分组的行数,正好对应每个单株对应的块茎数量,对统计出的所有单株块茎数求均值即可得到你需要的结果。如果你需要查看每个分组的块茎数,直接打印per_plant_count即可。
方案2:使用R内置函数(无需安装额外包)
# 按Rate、Rep、Plant分组统计每个组的块茎数量 per_plant_count <- aggregate(Weight ~ Rate + Rep + Plant, data = tuber_data, FUN = length) # 计算平均值 average_tuber_num <- mean(per_plant_count$Weight) # 打印结果 print(average_tuber_num)
说明:这里用内置的aggregate函数分组统计Weight列的长度,得到的就是每个分组的块茎数,再求均值即可。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

