How to combine rapply() and mapply(), or how to use mapply/Map recursively?

前端 未结 2 533
庸人自扰
庸人自扰 2021-01-06 05:21

I was wondering if there\'s a simple way to combine the functions of rapply( , how = \"replace\") and mapply(), in order to use mapply()

2条回答
  •  广开言路
    2021-01-06 05:54

    You can use Map recursively (twice) to accomplish this:

    Map(function(i, j) Map(function(x, y) x + y, i, j), A, B)
    
    [[1]]
    [[1]][[1]]
    [1] 2 4 6
    
    [[1]][[2]]
    [1] 4 6 8
    
    
    [[2]]
    [[2]][[1]]
    [1] 8 6 4
    
    [[2]][[2]]
    [1] 6 4 2
    

    To use mapply, you would need simplify=FALSE, but that is the default for Map. The outer list elements are fed to the first Map and the inner list elements are fed to the second Map.

提交回复
热议问题