R语言:按text_type分组计算多列变量均值的方法求助
按text_type分组计算多列均值的解决方案
嘿,作为R语言新手碰到这种批量分组计算的问题太正常啦,我给你两个简单好用的方法,你可以根据自己的习惯选:
方法1:用dplyr包(推荐,代码更直观)
dplyr是处理数据框的神器,语法很容易理解,步骤如下:
- 先安装并加载dplyr包(如果还没装的话):
# 安装包(只需要运行一次) install.packages("dplyr") # 加载包 library(dplyr)
- 分组计算均值:
# 按text_type分组,计算所有其他列的均值,同时忽略缺失值 result_dplyr <- BNCbiber %>% group_by(text_type) %>% summarise_all(mean, na.rm = TRUE)
group_by(text_type):指定按text_type列分组summarise_all(mean, na.rm = TRUE):对分组后的所有其他列应用mean函数,na.rm = TRUE是为了跳过缺失值(如果你的数据里有NA,一定要加这个,不然结果会变成NA)
方法2:用Base R的aggregate函数(无需额外装包)
如果你不想装新包,用R自带的aggregate函数也能搞定:
# 按text_type分组,计算所有其他列的均值 result_base <- aggregate(. ~ text_type, data = BNCbiber, FUN = mean, na.rm = TRUE)
. ~ text_type:这里的.代表除text_type之外的所有列,意思是把这些列按text_type分组计算均值FUN = mean:指定计算均值的函数na.rm = TRUE:同样是处理缺失值的参数
小提示
如果你的数据里有缺失值,一定要记得加上na.rm = TRUE哦,不然只要某组里有一个NA,那整列的均值就会变成NA,影响结果。
内容的提问来源于stack exchange,提问作者Zara Kolagar
相关产品推荐
相关产品推荐

