Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中创建自累积向量_R - Fatal编程技术网

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

如何在R中创建自累积向量,r,R,我想这很容易,但我的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 aBing是我的朋友……我找到了cu

我想这很容易,但我的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

aBing是我的朋友……我找到了cumsum()函数。

你是说
cumsum()

>AK
[1] 0.391304 0.217391 0.173913 0.173913 0.043478
>k k
[1] 0.391304 0.217391 0.173913 0.173913 0.043478
>ck-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 
>   
>ck-ck
[1] 0.39130 0.60870 0.78261 0.95652 1.00000 
>   
你想在这里
sort()
而不是
order()
加上索引。

如果bing是你的朋友,那么肯定是你的叔叔……或者
prop.table(cumsum(sort(a,decr=TRUE))
> 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 
>