我正在使用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)
}
}
答案 0 :(得分:1)
不需要for
循环,但您可能需要更详细地查看twitteR
包vignette,并查看一些示例。 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"