使用R分析热门hashtag时无法提取screen name及location求助
问题排查思路
- 采集时未指定拉取用户扩展字段:当前推特官方API默认仅返回推文基础属性,若需获取发布者用户名、位置等用户信息,需要在采集请求中主动声明需要的用户字段,未声明的情况下对应字段不会出现在返回结果中,调用不存在的字段就会返回NULL。
- 数据结构层级错误:主流R推特采集包(如rtweet)会将推文数据和用户数据拆分存储,用户属性不会直接存在主推文数据框中,直接对主数据框调用
$screenName自然取不到值。 - 字段名拼写不匹配:不同采集包返回的字段命名规则不同,部分包返回用户化名字段为
screen_name、username,而非screenName,大小写或拼写不符也会返回NULL。
解决步骤
- 先运行
names(squid_game)输出当前数据框的所有字段名,确认目标字段是否存在。 - 若使用rtweet包采集,调用
users_data()函数即可提取绑定在推文数据中的用户属性表,示例代码如下:
# 提取独立用户数据框 user_df <- users_data(squid_game) # 统计唯一用户名 unique(user_df$screen_name) # 统计唯一发布位置 unique(user_df$location)
- 若直接调用原生API采集,需要在请求参数中添加
expansions=author_id,同时在user.fields中添加username,location,采集完成后将推文数据和返回的用户扩展数据做关联即可取出对应字段。
R自学资源推荐
- 基础入门:《R for Data Science》中文译版,覆盖R语法基础、数据清洗、可视化、统计分析的全流程核心内容,案例实操性强,适合零基础入门。
- 社交文本分析专项:《Text Mining with R》,包含推特数据处理、文本分词、情感分析等场景的完整实操案例,和你当前的使用场景高度匹配。
- 实操练习:可基于R内置数据集配合tidyverse系列包的官方文档练习,每个函数的说明文档都自带可运行的示例代码,可快速上手验证语法。
内容的提问来源于stack exchange,提问作者Renuka Kennedy
相关产品推荐
相关产品推荐

