R

时间:2016-12-04 00:03:06

标签: r search twitter

我想使用twitteR运行一个简单的搜索,但只返回位于美国的推文我知道twitteR有一个lat / long的地理编码参数和纬度/长度内的里程数,但这种定位整个国家的推文的方式似乎硬。

我只会输入美国推文的论点?

谢谢,

1 个答案:

答案 0 :(得分:0)

我做了一个简短的搜索,看起来twitteR没有内置的国家/地区参数。但由于你有纬度/经度,因此对美国国家形状文件(即多边形点)进行空间连接非常简单。

在此示例中,我使用shapefile from Census.gov spatialEco 包作为其point.in.polygon()函数。与其他软件包提供的功能相比,它具有非常快速的空间连接功能,即使您拥有数十万个坐标和数十个多边形。如果您有数百万条推文 - 或者您稍后决定加入多个多边形,例如所有世界国家 - 然后它可能会慢得多。但是对于大多数用途来说,速度非常快。

(另外,我没有设置Twitter API,因此我将使用带有tweet_ids和lat / long的示例数据框。)

library(maptools) # to 
library(spatialEco)

# First, use setwd() to set working directory to the folder called cb_2015_us_nation_20m
us <- readShapePoly(fn = "cb_2015_us_nation_20m")
# Alternatively, you can use file.choose() and choose the .shp file like so:
us <- readShapePoly(file.choose())

# Create data frame with sample tweets
# Btw, tweet_id 1 is St. Louis, 2 is Toronto, 3 is ouston
tweets <- data.frame(tweet_id = c(1, 2, 3), 
                 latitude = c(38.610543, 43.653226, 29.760427),
                 longitude = c(-90.337189, -79.383184, -95.369803))

# Use point.in.poly to keep only tweets that are in the US
coordinates(tweets) <- ~longitude+latitude
tweets_in_us <- point.in.poly(tweets, us)
tweets_in_us <- as.data.frame(tweets_in_us)

现在,如果你看一下tweets_in_us,你应该只看到其纬度/长度落在美国范围内的推文。