gpt4 book ai didi

r - 向量列表的顺序和

转载 作者:行者123 更新时间:2023-12-02 00:57:32 24 4
gpt4 key购买 nike

xyz 是长度相等的向量。假设我想按顺序对它们求和,即 x +y,然后是 x+y+z。假设我有一个包含 20 个向量的列表。有没有简单的方法可以做到这一点?

 x <- c(1,2,3,45)
y <- c(2,31,31,4)
z <- c(3,4,54,6)

这是我的预期输出:

>  s <- x+y
> s
[1] 3 33 34 49

> z+s
[1] 6 37 88 55

最佳答案

这是一条可能的路线。将您的矢量放入列表中并将它们的长度固定为相同。您可以通过将 NA 填充到所有向量以达到与最大值相同的向量长度来实现此目的。您可以使用带有参数 accumulate = TRUEReduce 来顺序应用该函数,即

l1 <- list(x, y, z)
l1 <- lapply(l1, `length<-`, max(lengths(l1)))

Reduce(`+`, l1, accumulate = TRUE)
#[[1]]
#[1] 1 2 3 45 34

#[[2]]
#[1] 3 33 34 49 NA

#[[3]]
#[1] 6 37 88 55 NA

注意:如果你的向量都是相同的长度,那么你可以把它们放在一个列表中,然后直接转到 Reduce,即 Reduce(` +`, 列表(x, y, z), accumulate = TRUE)

关于r - 向量列表的顺序和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53204826/

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