如何使用管道为R data.frame添加分组观测数统计列
解决方案
基于你提供的dat数据框,使用dplyr包的管道操作即可直接添加观测数列,无需创建汇总或透视表:
- 先安装并加载
dplyr(首次使用需安装):
install.packages("dplyr") library(dplyr)
- 执行管道操作:
dat <- dat %>% group_by(country) %>% mutate(N = n()) %>% ungroup()
执行后的数据框即为你期望的输出:
# A tibble: 5 × 3 country values N <chr> <dbl> <int> 1 USA 25 2 2 USA 30 2 3 Japan 20 3 4 Japan 45 3 5 Japan 31 3
关键步骤解释
group_by(country):按国家分组,让后续操作基于每个组执行mutate(N = n()):新增列N,赋值为当前分组的观测总数ungroup():可选操作,取消分组状态,将数据框恢复为普通结构(不影响最终结果)
内容的提问来源于stack exchange,提问作者johnjohn
相关产品推荐
相关产品推荐

