为列表中的每个矩阵添加不同的值

时间:2017-02-21 11:38:27

标签: r list replace

无法解决这个问题。我知道如何做脏 - for-loop - 方式,但我确信有一些优雅的基础R或purrr方法。

我有一个相同的n个矩阵列表:


a <- matrix(ceiling(rnorm(4)), nrow = 2)
l <- list(mget(rep("a", 3)))        
l
#> [[1]]
#> [[1]]$a
#>      [,1] [,2]
#> [1,]    2    2
#> [2,]    0    0
#> 
#> [[1]]$a
#>      [,1] [,2]
#> [1,]    2    2
#> [2,]    0    0
#> 
#> [[1]]$a
#>      [,1] [,2]
#> [1,]    2    2
#> [2,]    0    0

x <- 1:3

现在,我希望将每个矩阵i替换为[1,2]元素i x中的MainActivity元素。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我们可以使用Map

Map(function(x,y) replace(x, 3, y), l, x)

或者

Map(function(x,y) {x[1,2] <- y; x}, l, x)

数据

set.seed(24)
a <- matrix(ceiling(rnorm(4)), nrow = 2)
l <- mget(rep("a", 3))