如何使用rtweet拉取仅含单个Cashtag的推文?
筛选仅含单个Cashtag的推文(R rtweet实现)
核心思路
先拉取目标推文,统计每条推文包含的Cashtag数量,最后筛选出数量为1的条目即可。rtweet自带的实体解析功能能准确识别Cashtag,比正则表达式更可靠。
具体代码实现
- 加载依赖包并拉取推文
# 安装依赖(首次运行需执行) install.packages(c("rtweet", "purrr")) library(rtweet) library(purrr) # 拉取包含目标Cashtag的推文,比如$AAPL # include_rts=FALSE可排除转推,避免重复数据 tweets <- search_tweets(q = "$AAPL", n = 1000, include_rts = FALSE)
- 统计每条推文的Cashtag数量
rtweet返回的数据框中,cashtags列是列表类型,每个元素对应一条推文的所有Cashtag向量。我们用map_int快速统计每条的长度:
# 添加Cashtag数量列 tweets$cashtag_count <- map_int(tweets$cashtags, length)
- 筛选仅含单个Cashtag的推文
# 筛选出Cashtag数量等于1的结果 single_cashtag_tweets <- tweets[tweets$cashtag_count == 1, ]
备选方案(正则提取)
如果你的推文数据中没有cashtags列(罕见情况),可以用正则表达式提取Cashtag并统计数量:
library(stringr) # 匹配$开头的字母数字组合,统计出现次数 tweets$cashtag_count <- str_count(tweets$text, "\\$[A-Za-z0-9]+") single_cashtag_tweets <- tweets[tweets$cashtag_count == 1, ]
注意:正则可能会误识别文本中类似$100这种非Cashtag的内容,所以优先用rtweet自带的cashtags字段。
内容的提问来源于stack exchange,提问作者8nracing
相关产品推荐
相关产品推荐

