当前位置: 首页 > 科技观察

ABeginner'sGuidetoCollectingandMappingTwitterDatawithR

时间:2023-03-16 00:38:58 科技观察

学习使用R的twitteR和传单包,您可以在任何主题上映射推文的位置。当我开始学习R时,我还需要学习如何收集推特数据并将其映射以用于研究目的。尽管网上有很多关于此主题的信息,但我发现很难理解与收集和映射Twitter数据相关的内容。我不仅是R的新手,而且对各种教程中的技术术语也不熟悉。但是,尽管困难重重,我还是成功了!在本教程中,我将介绍如何收集Twitter数据并将其以即使是新手程序员也能理解的方式显示在地图上。创建应用程序如果您没有Twitter帐户,首先您需要注册一个。然后,转到apps.twitter.com创建一个允许您收集Twitter数据的应用程序。别担心,创建应用程序非常简单。您创建的应用程序将与Twitter应用程序编程接口(API)连接。ImagineAPI是一个多功能电子个人助理。您可以使用API请求其他程序为您做事。通过这种方式,您可以访问TwitterAPI来收集数据。请确保不要请求太多,因为推文数据请求的数量是有限制的。有两个API可用于收集推文。如果您想一次性收集推文,请使用RESTAPI。如果您想在特定时间连续收集,可以使用流式API。在本教程中,我主要使用RESTAPI。创建应用程序后,转到密钥和访问令牌选项卡。您需要ConsumerKey(API密钥)、ConsumerSecret(API秘密)、AccessToken和AccessTokenSecret才能在R中访问您的应用程序。收集Twitter数据的下一步是打开R并准备编写代码。对于初学者,我推荐RStudio,它是R的集成开发环境(IDE)。我发现RStudio在解决问题和测试代码时非常有用。R有一个用于访问此RESTAPI的包,称为twitteR。打开RStudio并创建一个新的RScript。执行此操作后,您需要安装并加载twitteR包:install.packages("twitteR")#InstallTwitteRlibrary(twitteR)#LoadTwitterR安装并加载twitteR包后,您必须输入上述应用程序API信息:api_key<-""#把你的APIkeyapi_secret<-""#把你的APIsecrettoken放在引号里<-""#把你的tokentoken_secret放在引号里<-""#在引号里把你的tokencret放进去接下来连接到Twitter访问API:setup_twitter_oauth(api_key,api_secret,token,token_secret)让我们尝试让Twitter搜索社区花园和农贸市场:tweets<-searchTwitter("communitygardenOR#communitygardenORfarmersmarketOR#farmersmarket",n=200,lang="en")此代码表示搜索前200(n=200)条英文推文(lang="en"),包括关键字communitygarden或farmersmarket或任何提及这些关键字的标签。推文搜索完成后,将结果保存在数据框中:tweets.df<-twListToDF(tweets)要创建包含推文的地图,您需要将集合导出为.csv文件:write.csv(tweets.df,"C:\Users\YourName\Documents\ApptoMap\tweets.csv")#anexampleofthefolderyouwanttosavethe.csvfile.运行前确保R代码已保存,然后进行下一步。.生成地图现在您有了要在地图上显示的数据。在本教程中,我们将使用名为Leaflet的R包制作一个基本应用程序,Leaflet是一个流行的用于生成交互式地图的JavaScript库。Leaflet使用magrittr管道运算符(%>%),因为它的语法自然且易于编码。上手可能有点奇怪,但确实减少了编写代码的工作量。为了清楚起见,在RStudio中打开一个新的R脚本来安装这些包:read.csv("C:\Users\YourName\Documents\ApptoMap\tweets.csv",stringsAsFactors=FALSE)stringAsFactors=FALSE表示保留信息,不将其转化为因子。(要了解因子,请阅读RogerPeng的这篇文章“stringsAsFactors:未经授权的传记”)是时候制作您的Leaflet地图了。我们将使用OpenStreetMap底图制作您的地图:m<-leaflet(mymap)%>%addTiles()我们向底图添加一个圆圈。对于lng和lat,输入包含推文的纬度和经度的列名,前面加上~。~longitude和~latitude指向.csv文件中的列名:m%>%addCircles(lng=~longitude,lat=~latitude,popup=mymap$type,weight=8,radius=40,color="#fb3004",stroke=TRUE,fillOpacity=0.8)来运行你的代码。Web浏览器将弹出并显示您的地图。这是我之前收集的推文地图:TweetsLocationMap带有位置的推文地图,使用Leaflet和OpenStreetMapCC-BY-SA虽然您可能会对地图上的图像和文本数量如此之少感到惊讶,通常只有1%的推文进行了地理编码。我总共收集了366条推文,但只有10条(约占推文总数的3%)进行了地理编码。如果您在记录经过地理编码的推文时遇到问题,请更改您的搜索词,看看是否能获得更好的结果。总结对于初学者来说,将上述所有部分结合起来从Twitter数据生成Leaflet地图可能很困难。本教程基于我在此任务中的经验,希望它能使您的学习过程更轻松。(标题图片:JonesBaker。CCBY-SA4.0。来源:Cloud、Globe。均为CC0。)