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

如何在R语言中创建Role列识别Speaker的Storyteller与Recipient角色

给数据框添加角色列:区分Storyteller与Recipient

可以通过统计Speaker频次结合条件判断来生成Role列,这里提供两种基于dplyr的实现方式:

方法一:先提取高频Speaker再赋值

先统计每个Speaker的出现次数,找到频次最高的那个,再给原数据框的每行匹配对应角色:

library(dplyr)

# 提取出现次数最多的Speaker
top_speaker <- df %>%
  count(Speaker, sort = TRUE) %>%  # 按频次降序统计
  slice(1) %>%  # 取频次最高的行
  pull(Speaker)  # 提取Speaker值

# 添加Role列
df_with_role <- df %>%
  mutate(Role = ifelse(Speaker == top_speaker, "Storyteller", "Recipient"))

# 输出结果
df_with_role

方法二:用窗口函数一步完成

借助add_count函数给每行添加对应Speaker的总频次,再通过判断频次是否为最大值来赋值角色,无需单独提取高频Speaker:

library(dplyr)

df_with_role <- df %>%
  add_count(Speaker) %>%  # 新增n列,记录当前Speaker的总出现次数
  mutate(Role = ifelse(n == max(n), "Storyteller", "Recipient")) %>%
  select(-n)  # 删除临时的n列

# 输出结果
df_with_role

两种方法都能得到预期结果:

Speaker        Role
1       A Storyteller
2       B    Recipient
3       A Storyteller
4       A Storyteller
5       C    Recipient
6       A Storyteller

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:52:46