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

本地存储数据集下Corona高转发热门推文过滤问题求助

解决本地Twitter数据集筛选热门Corona推文的问题

看起来你混淆了线上搜索API函数和本地数据操作函数的用法,还可能踩了列名不匹配的坑,我帮你一步步理清:

1. 为什么search_tweets()会访问Twitter?

search_tweets()是rtweet包里专门用来调用Twitter API在线搜索推文的函数,它的设计目的就是从Twitter平台拉取数据,而非操作你本地已存储好的数据集。所以不管你加什么筛选参数,它都会尝试连接Twitter API——这是函数的正常行为,操作本地数据根本不该用这个函数。

2. 为什么filter()和top_n()没效果?

最常见的原因是本地数据集的列名和你写的不匹配:

  • rtweet包默认获取的推文数据里,转发量的列名是retweet_count(下划线分隔),而非你写的retweetCount(驼峰式);点赞量对应的是favorite_count,不是faves或其他名称。
  • 另外要确认你真的正确加载了本地数据集:比如之前用saveRDS()保存的,得先用readRDS()读进来,不然tweets对象可能是空的或者根本不存在。

正确的本地数据筛选步骤

第一步:确认本地数据的列名

先运行这个命令查看所有列名,找到转发量和点赞量对应的字段:

colnames(tweets)

你应该能看到类似retweet_count、favorite_count这样的列。

第二步:筛选符合条件的热门推文

假设你的本地数据集已经正确加载为tweets对象,列名是rtweet默认格式:

  • 筛选转发量≥100且点赞量≥100的推文:
    library(dplyr)
    
    tweets_pop <- tweets %>%
      filter(retweet_count >= 100 & favorite_count >= 100)
    
  • 取转发量最高的前15条推文:
    # 推荐用slice_head(dplyr新版本更推荐的写法)
    top_15_tweets <- tweets %>%
      arrange(desc(retweet_count)) %>%
      slice_head(n = 15)
    
    # 或者用top_n(旧版本兼容写法)
    top_15_tweets <- tweets %>%
      top_n(n = 15, wt = retweet_count)
    

第三步:排查额外的坑

如果还是没效果,检查这两点:

  • 数据类型问题:如果retweet_count是字符型(比如导出CSV时自动转成了字符串),先转成数值型:
    tweets$retweet_count <- as.numeric(tweets$retweet_count)
    tweets$favorite_count <- as.numeric(tweets$favorite_count)
    
  • 确认数据集非空:运行dim(tweets)查看数据的行数和列数,如果是0 x n说明你根本没加载到数据,得检查文件路径和读取方式。

内容的提问来源于stack exchange,提问作者R.K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 07:07:42