Как запустить вложенный цикл for в R для импорта таблиц данных из DOMO? - PullRequest
1 голос
/ 25 апреля 2019

У меня есть два списка, которые представляют таблицы данных в Domo, которые я использую Domo API для извлечения. Идентификаторы - это идентификаторы таблиц данных в domo. Я бы использовал функцию DomoR :: fetch (), чтобы получить таблицу, используя эти идентификаторы. Я хочу назвать каждую таблицу a, b и c соответственно.

id = list(1,2,3)
tablename = list(a,b,c)

Как я могу достичь нижеследующего, используя циклы for?

a<-DomoR::fetch(1)
b<-DomoR::fetch(2)
c<-DomoR::fetch(3)

Результатом должно быть три кадра данных с именами a, b, c

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Рассмотрим lapply для итеративного получения ваших фреймов данных и setNames для именования элементов списка.

v1 <- c("a3478de", "sefh334", "wrfiu24")

lst1 <- setNames(lapply(seq_along(v1), DomoR::fetch), v1)

Обычно рекомендуется работать с одним списком из множества похожих фреймов данных, чем множество отдельных, похожих фреймов данных, заполняющих вашу глобальную среду. Вы не потеряете функциональность фрейма данных, если хранитесь в списке, просто ссылка меняется:

lst1$`a3478de`
lst1$`sefh334`
lst1$`wrfiu24`
0 голосов
/ 25 апреля 2019

С помощью цикла for мы можем выполнить цикл последовательности vector, назначив выход для NULL list созданного

lst1 <- vector("list", length(v1))
names(lst1) <- v1
for(i in seq_along(v1)) lst[[i]] <- DomoR::fetch(v1[i])

Извлечь

lst1[["a3478de"]]
lst1[[v1[1]]]

, где

v1 <- c("a3478de", "sefh334", "wrfiu24")
...