如何在R中运行嵌套的for循环以从DOMO导入数据表?

时间:2019-04-25 16:57:02

标签: r dataframe for-loop nested iteration

我有两个列表,它们代表Domo中的数据表,我正在使用Domo API进行检索。 ID是domo中数据表的ID。我将使用DomoR :: fetch()函数使用这些ID来获取表。我想分别命名每个表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 :(得分:0)

通过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")

答案 1 :(得分:0)

请考虑使用lapply来迭代检索数据帧,并考虑setNames来命名列表元素。

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

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

通常建议使用一个列表来处理许多相似的数据框,而不是遍及全球环境的许多单独的相似数据框。如果存储在列表中,则不会丢失数据框的功能,只需更改引用即可:

lst1$`a3478de`
lst1$`sefh334`
lst1$`wrfiu24`