[英]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.