繁体   English   中英

如何在 R 的 2 个列表的元素之间应用 function?

[英]How to apply a function between the elements of 2 lists in R?

想象一下,你有这些变量:

> a <- list(matrix(1:25, 5, 5, byrow = TRUE), matrix(31:55, 5, 5, byrow = TRUE))
> b <- list(rep(1, 5), rep(2, 5))
> a
[[1]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    6    7    8    9   10
[3,]   11   12   13   14   15
[4,]   16   17   18   19   20
[5,]   21   22   23   24   25

[[2]]
     [,1] [,2] [,3] [,4] [,5]
[1,]   31   32   33   34   35
[2,]   36   37   38   39   40
[3,]   41   42   43   44   45
[4,]   46   47   48   49   50
[5,]   51   52   53   54   55

> b
[[1]]
[1] 1 1 1 1 1

[[2]]
[1] 2 2 2 2 2

我想结束这样的事情:

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    1    2    3    4    5
[3,]    6    7    8    9   10
[4,]   11   12   13   14   15
[5,]   16   17   18   19   20
[6,]   21   22   23   24   25

     [,1] [,2] [,3] [,4] [,5]
[1,]    2    2    2    2    2
[2,]   31   32   33   34   35
[3,]   36   37   38   39   40
[4,]   41   42   43   44   45
[5,]   46   47   48   49   50
[6,]   51   52   53   54   55

因此,就像拥有 Python zip一样 function 然后应用rbind 任何想法?

一个选项是来自base R Map Map

Map(rbind, b, a)

或者您可以尝试:

lapply(1:length(a),function(i)rbind(b[[i]],a[[i]]))

假设长度(a)==长度(b)

一种选择是使用purrr package。

library(purrr)

map2(b, a, rbind)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM