2016-07-01 6 views
0
Anhänger aus einer Liste von Twitter-Konten in R abrufen

Ich versuche, die Anhänger von bestimmten Konten mit dem TWITTER Paket in R zu erhalten:Versuch

names_list <- c("USER1","USER2", "etc.") 

twitter_account <- c() 

for (i in names_list){ 

    url = paste("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=",names_list[i], sep = ',') 
    twitter <- GET(url,sig) 
    content = content(twitter) 

    userz <- getUser(names_list[i]) 
    userz$getFollowers(names_list[i]) 

    } 

Aber leider funktioniert es nicht (immer eine Fehler, aber auch dann ich bin ziemlich sicher, es wird nicht funktionieren. I R relativ neu bin so wäre jede Hilfe, um diese Daten zu ziehen geschätzt. auch ohne das TWITTER-Paket.

[ Error in if (num <= 0) stop("num must be positive") else num <- as.integer(num) : 
    missing value where TRUE/FALSE needed] 

und es wäre hilfreich sein, wenn Sie erklären könnten, wie dies mit dem Abrufen der names_list aus einer CSV-Datei tatsächlich getan werden kann Das ist nicht wirklich notwendig.

Antwort

1

Ich glaube, dass Ihr Problem von der getUser-Linie kommt.

userz <- getUser(names_list[i]) 

In diesem Fall 'i' ein Wert in names_list ist, wie Sie Ihre for-Schleife als

for (i in names_list){ 

So initialisiert haben, Ihr names_list [i] entspricht [ 'USER1'] names_list und NICHT zu names_list [1].

denke ich, was Sie wollen entweder auf Namen iterieren und direkt auf den Namen verweisen:

for (name in names_list){ 

    url = paste("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=", name, sep = ',') 
    twitter <- GET(url,sig) 
    content = content(twitter) 

    userz <- getUser(name) 
    userz$getFollowers(name) 

    } 

oder einen Index iterieren und Indizierung von names_list verwenden:

for (i in 1:length(names_list)){ 

    url = paste("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=",names_list[i], sep = ',') 
    twitter <- GET(url,sig) 
    content = content(twitter) 

    userz <- getUser(names_list[i]) 
    userz$getFollowers(names_list[i]) 

    } 
+0

scheint zu werfen ein Fehler immer noch: Fehler in if ((! is.null (num)) && (length (vals)> = num)) break: fehlender Wert wo TRUE/FALSE benötigt Zusätzlich: Warnmeldung: In doCursorAPICall (Einfügen (Typ, "IDs", sep = "/"), "ids", num = n,: NAs, die durch Nötigung eingeführt wurden – user6533517

+0

Können Sie uns sagen, bei welchem ​​Befehl dieser Fehler ausgelöst wird? Aus welchem ​​Paket stammt die GET-Funktion? Wofür steht das Sig? Können Sie mir ein vollständiges Beispiel geben (eventuell nicht in der for-Schleife)? Außerdem habe ich die erste Schleife bearbeitet, da ich die names_list [i] in der URL nicht gesehen hatte. – Choubi