2015-11-19 4 views
0

Я пытаюсь выполнить итерацию (для) через переменные. Это код:R - Итерация через имена переменных

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

у меня будет две переменные: json_YR_FKA/json_9A_BTE

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

matriculas [1] "json_9A_BTE" "json_YR_FKA"

И теперь, Мне нужно сделать некоторые вещи с обеих переменных, поэтому у меня есть для итерация:

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

Моя идея заключается в том, чтобы сделать это:

Первая итерация: fromJSON (json_9A_BTE) Вторая итерация: fromJSON (json_YR_FKA)

Но в начале первой итерации я получаю это:

fromJSON (matriculas [I]) Ошибка в fromJSON (matriculas [1]): неожиданный символ 'J'

И я не знаю почему.

Кто-нибудь?

Заранее спасибо.

Луис

+0

Является ли длина ваших матриц векторов 2? ('length (matriculas)') или переменные, хранящиеся в списке? если они находятся в списке, попробуйте поместить двойные квадратные скобки вокруг своего «i» в цикле «avion <- fromJSON (matriculas [[i]]). – anotherFishGuy

+0

Спасибо за ваш быстрый ответ, Коллин. Длина 2 (общая <- длина (matriculas), но это может быть любое число в будущем. Я попытался> из JSON (matriculas [[1]]) Ошибка в JSON (matriculas [[1]]): неожиданный character 'j' ... Я получаю то же самое: -/ – user3868641

ответ

0

Подход, который вы принимаете, не очень R-как, поэтому я предполагаю, что вы пришли из Python или какой-либо другой язык?

Прежде всего, я не уверен, какие пакеты вы используете. Откуда getURL()? Какой пакет JSON вы используете? Я предлагаю jsonlite, так как он может просто извлекать данные из 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

Я иду из .NET, java, pyhton, pascal ... поэтому у меня есть сочетание знаний :-). Большое вам спасибо, я попробую ваше решение. BTW, я использую: library ('RCurl')/library ('rjson')/library ('RMySQL') – user3868641

+0

Хорошая информация. Да, если вы не используете «RCurl» для чего-то еще, я бы пропустил его полностью. «jsonlite» - это замена для функции «rjson» и функции jSON(), в которой jsonlite предоставляет ручки, которые сами настраивают подключения к файлам и загрузку URL-адресов. Для этого требуется пакет «curl» для загрузки URL-адресов, поэтому я также предлагаю установить его. Я нашел «curl» более разумным в том, как он взаимодействует с libcurl, чем «RCurl». – doicomehereoften1

+0

Любые обновления по этому вопросу? Вы его работали? – doicomehereoften1

Смежные вопросы