gpt4 book ai didi

r - R:如何将列表元素乘以向量?

转载 作者:行者123 更新时间:2023-12-02 07:24:31 25 4
gpt4 key购买 nike

我想将矩阵列表(一行)相乘,如下所示:

lst <- list("111.2012"=matrix(c(1, 0, 6, NA, 1, 0),
nrow = 1, byrow = T),
"112.2012"=matrix(c(6, 2, 2, 0, 3, NA),
nrow = 1, byrow = T))

具有这样的 vector (与每个矩阵的长度相同):
vec <- c(1,2,3,1,2,3)

并期待这个结果:
$`111.2012`
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 18 NA 2 0

$`112.2012`
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 6 4 6 0 6 NA

到目前为止,我已经尝试过:
mapply("*", lst, vec) 
Map("*", lst, vec)

这给了我三倍的数字和错误的数字。我还考虑过在mapply中使用lapply来处理列表,但不知道该怎么做。有什么建议么?谢谢

最佳答案

我相信您正在寻找lapply(),因为您使用的是列表lapply( lst, FUN= function(x) x*vec)
有关更多信息,请参见this

希望有帮助!

lapply(lst,FUN= function(x) x*vec) ## My old clunky way

lapply(lst, "*" , vec) ## As informed by Richard Scriven (Thanks!)

$`111.2012`
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 18 NA 2 0

$`112.2012`
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 6 4 6 0 6 NA

关于r - R:如何将列表元素乘以向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com