使用嵌套列表作为非向量化函数的输入

Using nested lists as input to non-vectorized a function

我需要使用列表中的嵌套元素进行查询。例如:

sha_list <- list(c("ed76504696469470dcbf", "164f798524fd6904236a"),
c("669dfeccad88cd4348f7", "af70a76691aacf05c1bb"))

这是一个具有以下结构的列表:

[[1]]
[1] "ed76504696469470dcbf" "164f798524fd6904236a"

[[2]]
[1] "669dfeccad88cd4348f7" "af70a76691aacf05c1bb"

这是我目前尝试过的方法:

library("devtools")
lapply(sha_list, source_gist)

这给出:

Error: length(id) == 1 is not TRUE

预期的输出将是一个列表,列表的两个条目中的每一个都有两个元素:

[[1]]
[1] gist1
[2] gist2

[[2]]
[1] gist3
[2] gist4

我在这里需要做的是遍历这个列表来执行一个函数(它是非向量化的,所以它一次只能接受一个元素作为参数)。我希望这会起作用,因为我想递归地使用每个列表中的每个项目:

rapply(sha_list, source_gist, how = "list")

这也不行。

unlist() 将不起作用,因为我需要维护列表的结构(即输出需要以与列表相同的方式构建)。

你可以这样做:

library("devtools")
sha_list <- list(c("ed76504696469470dcbf", "164f798524fd6904236a"),
                 c("669dfeccad88cd4348f7", "af70a76691aacf05c1bb"))
my.gists <- lapply(sha_list, function(x) lapply(x, source_gist))

然后,例如,与 sha_list[[1]][2] 关联的要点可以通过 my.gists[[1]][[2]] 访问。