嵌套lapply的索引号

时间:2017-12-14 17:38:33

标签: r nested lapply

我试图了解如何通过2个列表访问嵌套lapply函数的外部迭代索引。

虚拟案例:假设我在这里有2个项目的列表,并且有3个项目,并使用嵌套的lapply来创建变量item1_x,item1_y,item1_z等。 在我正在编写的代码中,我尝试访问迭代索引,我可以使用parent.frame()$ i []来进行内部lapply,但是如何访问外部迭代索引?

目标:当代码通过外部lapply时,我想打印1,2                 当代码通过内部lapply时打印1,2,3     因此也能够打印外部索引时间内部索引,i,e 1,2,3,4,5,6

我正在寻找类似于parent.frame()$ i []的代码片段来访问外部迭代索引(如果存在),也是为了更好地理解它是如何工作的,但老实说任何其他解决方案都会有好处。当然

mylist <- c("item1", "item2")

  lapply(mylist, function(y) {
         lapply(c("x", "y", "z"), function(x) {
            print(parent.frame()$i[])
### access index number of outer lapply here somehow. 
###   index 1 * index 2 should be giving a print(...) of 1:6 than...

        })})

1 个答案:

答案 0 :(得分:1)

以下是一些方法

使用mapply

mapply(function(y, z) {
                lapply(c("x", "y", "z"), function(x) {
                                            print(paste(y, x))
                                            print(z)
                                        })
        }, 
        mylist, 
        seq_along(mylist))

或仅lapply

lapply(seq_along(mylist),   function(y) {
                                lapply(c("x", "y", "z"), function(x) {
                                                            print(paste(mylist[y], x))
                                                        })
                            })