我有类似以下的列表
a <- list(list(c(-2,1), 4:5, 2:3), list(c(0,2), c(-1,1)))
b <- list(7:9, c(5,-1))
> a
[[1]]
[[1]][[1]]
[1] -2 1
[[1]][[2]]
[1] 4 5
[[1]][[3]]
[1] 2 3
[[2]]
[[2]][[1]]
[1] 0 2
[[2]][[2]]
[1] -1 1
> b
[[1]]
[1] 7 8 9
[[2]]
[1] 5 -1
我想将
a[[1]]
中的(-2, 1)分别与b[[1]]
中的7相乘,得到(-14, 7),将(4, 5)分别乘以8,(2, 3)分别乘以9,然后将(0, 2)分别乘以5,最后将(-1, 1)分别乘以-1。我可以确定对于i=1,2(实际上i要大得多),
length(a[[i]])==length(b[[i]])
为TRUE
,因此所需的乘法有正确数量的条目。但是,不清楚
a[[i]]
有多少个条目(在示例中,a[[1]]
有3个条目,a[[2]]
有2个条目,或等效地,b[[i]]
有多长),除了它们至少有一个条目。因此,将a
和b
转换为矩阵似乎并不实用。我不确定这与问题有关,但每个
a[[i]]
中都有与a[[i]]
相同数量的条目(即2)。我考虑使用
do.call
和mapply
的某种组合,但无法使其正常工作。