我有一个列表“temp”等于
[[1]]
[1] 8 0 3
[[2]]
[1] 6 4 0
[[3]]
[1] 0 5 0
和一个向量vec = c(1,2,3,4,5,6,7,8,9)
。我想获得一个与“temp”结构相同的列表,它将包含 temp 和 vec 之间每个元素的最大值。所需的新列表将等于
[[1]]
[1] 8 2 3
[[2]]
[1] 6 5 6
[[3]]
[1] 7 8 9
如果我执行
mapply(max, temp, vec)
我明白了
8 6 5 8 6 6 8 8 9
这是错误的结果和错误的结构。
如果我执行
lapply(temp, function(x) mapply(max, unlist(temp), vec))
我得到以下
[[1]]
[1] 8 2 3 6 5 6 7 8 9
[[2]]
[1] 8 2 3 6 5 6 7 8 9
[[3]]
[1] 8 2 3 6 5 6 7 8 9
这在某种程度上是结构错误的正确结果。有没有一种矢量化的方式来获得预期的效果?重要的是,它运行得非常快......
谢谢!!!