2015-11-19 2 views
0

J'essaie de parcourir (pour) à travers des variables. Voici le code:R - Itérer par les noms de variables

json_YR_FKA <- getURL('https://www.kimonolabs.com/api/b7i1ej7i?apikey=-') 
json_9A_BTE <- getURL('https://www.kimonolabs.com/api/a83t52cg?apikey=-') 

Je vais avoir deux variables: json_YR_FKA/json_9A_BTE

matriculas <- ls() 
matriculas <- str(matriculas) 
matriculas 

matriculas [1] "json_9A_BTE" "json_YR_FKA"

Et maintenant, J'ai besoin de faire quelques choses avec les deux variables, donc j'ai un pour itération:

for (i in 1:total){ 
    avion <- fromJSON(matriculas[i]) 
    # boring code 
} 

Mon idée est de faire ceci:

Première itération: fromJSON (json_9A_BTE) Deuxième itération: fromJSON (json_YR_FKA)

Mais au début de la première itération je reçois ceci:

fromJSON (matriculas [i]) erreur dans fromJSON (matriculas [1]): caractère inattendu 'j'

Et je ne sais pas pourquoi.

Quelqu'un?

Merci d'avance.

Luis

+0

La longueur de votre vecteur matriculas 2? ('length (matriculas)') ou les variables sont-elles stockées dans une liste? si elles sont dans une liste essayez de mettre des doubles crochets autour de votre "i" dans la boucle 'avion <- fromJSON (matriculas [[i]])' – anotherFishGuy

+0

Merci pour votre réponse rapide, Collin. La longueur est 2 (total <- longueur (matriculas) .Mais il pourrait être n'importe quel nombre dans le futur.J'ai essayé> deJSON (matriculas [[1]]) Erreur dans fromJSON (matriculas [[1]]): inattendu caractère 'j' ... Je reçois la même chose: -/ – user3868641

Répondre

0

L'approche que vous prenez est pas très R-like, donc je devine que vous venez de Python ou d'une autre langue?

Tout d'abord, je ne sais pas quels paquets vous utilisez. D'où vient getURL()? Quel paquet JSON utilisez-vous? Je suggère jsonlite car il peut juste tirer des données de l'URL.

library(jsonlite) 

myUrls <- c(json_YR_FKA='https://www.kimonolabs.com/api/b7i1ej7i?apikey=-', 
      json_9A_BTE='https://www.kimonolabs.com/api/a83t52cg?apikey=-') 

matriculas <- lapply(myUrls, fromJSON) #Provides a list of your data. 

f_doSomething <- function(dat) { 
    #boring code that puts data into 'out' variable 
    return(out) 
    } 

avion <- lapply(matriculas, f_doSomething) 
+0

Je viens de .NET, java, pyhton, pascal ... donc j'ai un mélange de connaissances :-). Merci beaucoup, je vais essayer votre solution. BTW, j'utilise: library ('RCurl')/library ('rjson')/library ('RMySQL') – user3868641

+0

Bonne info. Ouais, à moins que vous n'utilisiez 'RCurl' pour autre chose, je l'ignorerais complètement. 'jsonlite' est un remplacement direct de 'rjson' et de la fonction fromJSON() que jsonlite fournit pour gérer les connexions de fichiers et les téléchargements d'url par lui-même. Cela nécessite le paquet 'curl' pour les téléchargements d'url, donc je suggère d'installer ça aussi. J'ai trouvé 'curl' pour être un peu plus sain d'esprit à propos de l'interface avec libcurl que 'RCurl'. – doicomehereoften1

+0

Des mises à jour à cela? Avez-vous réussi à le faire fonctionner? – doicomehereoften1