TwitteR与R限制用户使用friendscount

时间:2014-03-30 17:50:03

标签: r twitter data-mining

我正在使用R中的TwitteR软件包进行数据挖掘,我在跟踪大量用户的帐户时遇到了一些问题。我有一个使用简单搜索获得的twitter屏幕名称列表:

smalltest<-searchTwitter("bridgegate",n=25)

然后我只用屏幕名称替换了列表:

smalltest= laply(smalltest, function(t) t$getScreenName())

我想将我的屏幕名列表限制为少于X个朋友的用户,我认为我可以通过FriendsCount()函数进行验证。我想我会运行一个循环和一个if语句,但我不确定使用正确的语法。这样的事可能吗?

 for(i in 1:length(smalltest))){
user<-getUser(smalltest[i])
if user$FriendsCOUNT >250
*some command to remove this username from smalltest*

}

据我所知,FriendsCount只是用户对象中的一个字段。不确定访问它的正确语法是什么。我意识到这是一个很长的问题,任何帮助都会非常感激!!

这是我刚刚尝试使用的代码,但我一直遇到语法错误。

for(i in 1:length(smalltest)) {
  user <- getUser(smalltest[i])
  numbfriends<-user$getFriendsIDs()
    if length(numbfriends) >250{
    smalltest[i] <-list(null)
  }


}

1 个答案:

答案 0 :(得分:1)

不需要for循环,但您可能需要更详细地查看twitteRvignette,并查看一些示例。 Twitter dev site

bridgegate <- searchTwitter("bridgegate", n = 25)

# try not to use 't' as a variable name since there's a 't()' function
bridgeTweeters <- laply(bridgegate, function(x) x$getScreenName())

# this gets us **tons** of info about all the twitter users we found above
bridgeTweeters <- lookupUsers(bridgeTweeters)

# prlby 20 other ways to do the following
bridgeTweeters.250 <- as.character(na.omit((sapply(bridgeTweeters, function(x) {
    return(ifelse((x$friendsCount <= 250), x$screenName, NA))
}))))

print(bridgeTweeters.250)

## [1] "SatireFunnyNews" "USRadioNews"     "JOBCREMATORMITT" "__Semir__"      
## [5] "TexasPolitica"   "CallMeAhmjusAyn" "FoamFingerFan"