r - 划分两个矩阵列表,其中一个列表中的第 i 个矩阵元素除以第二个列表中的第 i 个矩阵元素
问题描述
我有两个矩阵列表。以下是它们的结构示例:
list1<- list(structure(c(1, 2, 7, 1, 3, 0, 0, 0, 1, 4, 1, 3, 2, 3, 4,
6, 0, 0, 0, 3, 3), .Dim = c(7L, 3L), .Dimnames = list(c("lepA",
"lepB", "lepC", "lepD", "lepE", "lepF", "lepG"), NULL)), structure(c(1,
3, 7, 1, 3, 2, 3, 4, 6, 4, 1, 3, 3, 3), .Dim = c(7L, 2L), .Dimnames = list(
c("lepA", "lepB", "lepC", "lepD", "lepE", "lepF", "lepG"),
NULL)), structure(c(5, 8, 7, 1, 3, 3, 3), .Dim = c(7L, 1L
), .Dimnames = list(c("lepA", "lepB", "lepC", "lepD", "lepE",
"lepF", "lepG"), NULL)))
list2<-list(structure(c(6, 1, 51, 13, 15, 0, 0, 0, 6, 50, 13, 15, 6,
5, 5, 9, 0, 0, 0, 7, 5), .Dim = c(7L, 3L), .Dimnames = list(c("lepA",
"lepB", "lepC", "lepD", "lepE", "lepF", "lepG"), NULL)), structure(c(6,
7, 51, 13, 15, 6, 5, 5, 9, 50, 13, 15, 7, 5), .Dim = c(7L, 2L
), .Dimnames = list(c("lepA", "lepB", "lepC", "lepD", "lepE",
"lepF", "lepG"), NULL)), structure(c(11, 10, 51, 13, 15, 7, 5
), .Dim = c(7L, 1L), .Dimnames = list(c("lepA", "lepB", "lepC",
"lepD", "lepE", "lepF", "lepG"), NULL)))
我需要将列表中每个矩阵的每个元素与第二个列表中匹配矩阵中的相应元素相除。就好像两个矩阵列表应该是一个数组列表,并且为每个数组元素计算被除数。结果将是:
list<- list(list1[[1]]/list2[[1]], list1[[2]]/list2[[2]], list1[[3]]/list2[[3]])
我试过:
list1/list2
解决方案
使用Map
:
Map(`/`, list1, list2)
#[[1]]
# [,1] [,2] [,3]
#lepA 0.16666667 NaN 0.8000000
#lepB 2.00000000 0.16666667 0.6666667
#lepC 0.13725490 0.08000000 NaN
#lepD 0.07692308 0.07692308 NaN
#lepE 0.20000000 0.20000000 NaN
#lepF NaN 0.33333333 0.4285714
#lepG NaN 0.60000000 0.6000000
#[[2]]
# [,1] [,2]
#lepA 0.16666667 0.80000000
#lepB 0.42857143 0.66666667
#lepC 0.13725490 0.08000000
#lepD 0.07692308 0.07692308
#lepE 0.20000000 0.20000000
#lepF 0.33333333 0.42857143
#lepG 0.60000000 0.60000000
#[[3]]
# [,1]
#lepA 0.45454545
#lepB 0.80000000
#lepC 0.13725490
#lepD 0.07692308
#lepE 0.20000000
#lepF 0.42857143
#lepG 0.60000000
或map2
在purrr
purrr::map2(list1, list2, `/`)
推荐阅读
- android - 如何查看有多少玩家在 Play 游戏服务中解锁了一项成就?
- arrays - 统一反序列化
- pytorch - 我应该如何理解 nn.Embeddings 参数 num_embeddings 和 embedding_dim?
- c++ - 我无法在 Win32 应用程序的工具栏按钮上设置自定义 ICO 图标
- excel - 公式函数内的循环变量
- python-3.x - “有没有办法在 Python 中创建元组列表的排列或乘积?”
- python-3.x - matplotlib 错误:没有名为 matplotlib 的模块,即使它已安装
- java - 通过 Java 字节码可以看到用值初始化的全局变量还是私有变量?
- netlogo - Netlogo - 海龟穿越线
- c - 是否将数组放在堆上而不是堆栈上,以消除分段错误的可能性?