我正在尝试通过TwitteR包获取lat + lon,但结果数据框的lat / lon列都是NA。
tweets<-searchTwitter('cats',n=100)
tweets<-do.call("rbind",lapply(tweets,as.data.frame))
有没有解决方法,还是有其他方法来提取推文的位置数据?
答案 0 :(得分:0)
看起来lat / lon不适用于推文。
我可以从组成推文的用户那里获取位置信息。 TwitteR固有的能力是:
a<-getUser("eastandwestwind")
a$location
[1] "Boston, MA"
因此,如果我有一个带有screenName列的数据框,我可以提供一个提取该列的位置信息的函数。
getLocation<-function(x){
y<-getUser(x)
return(y$location)
}
locations <- lapply(tweets$screenName, function(x) getLocation(x))
从这里开始,我可以将位置作为原始数据框中的新列附加
tweets$city<-locations
强制回到数据框,因为$ city是一个列表
tweets<-data.frame(lapply(tweets, as.character), stringsAsFactors=FALSE)