You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中使用group_by()统计变量频次并生成对应dataframe?

使用group_by()统计出生地频率的解决方案

这事儿很简单,用dplyr包的group_by()搭配summarise()就能轻松实现你要的转换,我给你一步步说明:

1. 先准备你的数据源

首先我们先把你提供的表A转换成R的数据框(如果还没准备好的话):

# 构造表A的数据框
df <- data.frame(
  Person = c("Nick", "Alex", "Mark", "Jane", "Bob", "Ruth", "Steven"),
  Birthplace = c("Berlin", "Berlin", "Toronto", "New York", "Toronto", "New York", "Berlin")
)

2. 核心分组统计代码

加载dplyr包后,用管道操作符%>%串联分组和统计操作:

library(dplyr)

# 分组并计算频率
result_df <- df %>%
  # 按Birthplace列分组
  group_by(Birthplace) %>%
  # 统计每组的行数,命名为Frequency
  summarise(Frequency = n())

3. 查看结果

运行上面的代码后,打印result_df就能得到你想要的表B:

# A tibble: 3 × 2
  Birthplace Frequency
  <chr>          <int>
1 Berlin             3
2 New York           2
3 Toronto            2

简单解释下:group_by(Birthplace)会把数据按照出生地分成不同的组,summarise(Frequency = n())则会统计每个组里的观测数量(也就是每个人的记录数),最终生成你需要的“出生地-频率”对应表。

内容的提问来源于stack exchange,提问作者NickA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:47:29