【发布时间】:2019-01-29 04:45:09
【问题描述】:
L <- list(a= c(1,3,5), b= c(2,3,4,1), c= c(4,7))
v <- c(3,2,4)
如下图
> L[[1]]+3
[1] 4 6 8
> L[[2]]+2
[1] 4 5 6 3
> L[[3]]+4
[1] 8 11
我希望得到结果为
list(a= c(4,6,8), b= c(4,5,6,3), c= c(8,11))
是否可以使用 APPLY 函数?
【问题讨论】:
-
你只需要
mapply("+", L, v) -
或
purrr::map2(L, v,+)如果您想要一个 tidyverse 解决方案(与mapply的作用相同) -
哇!那太棒了!非常感谢
-
使用
Map(`+`, L, v)或mapply(`+`, L, v, simplify = FALSE)更安全,否则如果L的长度恰好相同,您将得到一个矩阵而不是列表。