假设我有以下列表

l1 = list()
for(i in 1:5){
 l1[[i]] = matrix(rnorm(9),3)
}

现在,我想对l1中的每个矩阵求出以下对角线矩阵

My_D = diag(c(1:3))

My_D加到l1的有效方法是什么

我try 了以下几种方法,但没有奏效

l1 + My_D
lapply(l1, function(i) l1[[i]] + My_D)

推荐答案

我们可以这样用lapply来做这件事:

有了lapply,我们就可以迭代l1中的每个矩阵.

function(x) x + My_D会将My_D加到列表中的每个矩阵垫上.

lapply(l1, function(x) x + My_D)

[[1]]
           [,1]       [,2]       [,3]
[1,]  1.3232960  1.2963813 -0.8209761
[2,] -0.9243988  1.1403460 -0.1451593
[3,] -2.1092458 -0.1841043  4.1437289

[[2]]
           [,1]      [,2]      [,3]
[1,]  0.5765338 0.8482495  0.558125
[2,] -0.1517627 3.5162358 -1.251998
[3,] -0.6023508 1.6212503  1.871297

[[3]]
           [,1]       [,2]       [,3]
[1,] -0.2219524 -1.9098658 -0.7784212
[2,] -1.0356978 -0.0148585  1.1690386
[3,]  0.9394348  0.2223198  2.9638898

[[4]]
            [,1]      [,2]       [,3]
[1,]  1.40803158  1.177378  0.2193847
[2,] -0.45375624  2.656497 -0.7228035
[3,]  0.08309659 -2.308122  2.5135570

[[5]]
           [,1]      [,2]       [,3]
[1,]  0.3835801 -1.250286 -0.8052156
[2,] -1.3480947  2.109671  1.2550385
[3,]  0.9339825  1.188224  3.9017532

R相关问答推荐

如何删除字符串中重复的字符序列?

分组时间连续值

使用facet_wrap()时如何将面板标题转换为脚注?

按条件计算观察次数

混淆矩阵,其中每列和等于1

单击 map 后,将坐标复制到剪贴板

如何 bootstrap glm回归、估计95%置信区间并绘制它?

更改编号列表的 colored颜色

在R中替换函数中的特定符号

如何利用模型函数在格图中添加双曲/指数曲线

将数据集中的值增加到当前包含的最大值

移除仪表板Quarto中顶盖和车身之间的白色区域

R中的哈密顿滤波

使用带有OR条件的grepl过滤字符串

用R ggplot2求上、下三角形中两个变量的矩阵热图

具有重复元素的维恩图

为什么在BASE R中绘制线条时会看到线上的点?

将具有坐标列表列的三角形转换为多个多边形

将统计检验添加到GGPUBR中的盒图,在R

如何根据未知数的多列排除重复行