gpt4 book ai didi

r - 如何在 R 中创建自累积向量

转载 作者:行者123 更新时间:2023-12-01 23:26:10 25 4
gpt4 key购买 nike

我觉得这个很简单,但是我的R功夫很弱。我正在尝试以累积的方式创建其自身的向量。这段代码可以工作,但我想要更优雅和自动化的东西。我有数百万行需要累积。

a <- c(4,4,5,1,9)
a <- a[order(-a[])]
k <- a[1:length(a)]/sum(a)
w <- c(k[1],k[1]+k[2],k[1]+k[2]+k[3],k[1]+k[2]+k[3]+k[4],k[1]+k[2]+k[3]+k[4]+k[5])
w

最佳答案

您是指 cumsum() 吗?

> a <- c(4,4,5,1,9)
> a <- a[order(-a[])] # just calling sort is shorter too
> k <- a[1:length(a)]/sum(a) # long way
> k
[1] 0.391304 0.217391 0.173913 0.173913 0.043478
> k <- a/sum(a) # same, but shorter
> k
[1] 0.391304 0.217391 0.173913 0.173913 0.043478
> ck <- cumsum(k)
> ck
[1] 0.39130 0.60870 0.78261 0.95652 1.00000
>

编辑我忽略了另一个简化:

> a <- c(4,4,5,1,9)
> ck <- cumsum( sort(a, decr=TRUE) / sum(as) )
> ck
[1] 0.39130 0.60870 0.78261 0.95652 1.00000
>

您需要在此处使用 sort() 而不是 order() 并加上索引。

关于r - 如何在 R 中创建自累积向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887291/

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