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

如何统计rtweet数据集字符变量中多个字符串的出现次数

统计推特数据中指定提及用户名的出现次数

嘿,我来帮你搞定这个统计需求!首先得明确:rtweet返回的mentions_screen_name字段通常是列表列——也就是每条推文对应的元素可能是一个包含多个用户名的向量(比如一条推文@了A和B,那这个位置的值就是c("A", "B"))。所以我们得先把这个列表展开,再统计目标用户名的出现次数。

下面给你两种实用的方法:

方法一:基础R实现

不需要额外安装包,用原生函数就能搞定:

# 第一步:把列表列展开成单个用户名组成的向量
all_mentions <- unlist(x$mentions_screen_name)

# 第二步:统计所有用户名的出现次数
total_counts <- table(all_mentions)

# 第三步:提取'A'、'B'、'C'的计数,没出现的补0
target_counts <- c(
  A = ifelse(is.na(total_counts["A"]), 0, total_counts["A"]),
  B = ifelse(is.na(total_counts["B"]), 0, total_counts["B"]),
  C = ifelse(is.na(total_counts["C"]), 0, total_counts["C"])
)

# 查看结果
print(target_counts)

方法二:tidyverse风格(更简洁)

如果你习惯用tidyverse生态的工具,代码会更直观:

library(tidyverse)

# 展开列表列 → 筛选目标用户名 → 统计次数 → 补全未出现的项
x %>%
  unnest(mentions_screen_name) %>%
  filter(mentions_screen_name %in% c("A", "B", "C")) %>%
  count(mentions_screen_name, name = "occurrences") %>%
  complete(mentions_screen_name = c("A", "B", "C"), fill = list(occurrences = 0))

小提示

如果你的x$mentions_screen_name是普通字符向量(每条推文只@了一个人),那可以跳过unlist或unnest步骤,直接用table(x$mentions_screen_name)或者count(x, mentions_screen_name)来统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:04:56