2016-05-19 15 views
0

私は2つの列(ID、量)を持つ数百万の値を持つデータセットを持っています。金額は降順でソートされます。私は条件に基づいて金額の累計を取得する必要があります。例について条件に基づいて累積合計を取得する方法

ID  Amount 
101  40000 
102  20000 
103  15000 
104  10000 
...... 

Iのソート後、すなわち第10行第1%の累積和を必要と1000行がある場合、次いで、4%(40)、15%(150)、35%(350)と下50%(500)。私はあなただけの集計CUMSUMではなく、細部をしたいと仮定どのように私はデータフレームがソートされていることを確認し始めるR

+0

「ID」ごとに別々の「cumsum」が必要ですか? –

+0

@RafaelPereira私は 'cumsum'が必要です。 – mockash

答えて

1

なぜ

data <- 1:1000 
n <- length(data) 
quantile <- 0.01 # cumsum top 1% 
cumsum(data[1:floor(n*quantile)]) 
+0

私のデータセットに重複がある場合は、 'cumsum'でも重複を追加するか、それをスキップします – mockash

0

でこれを得るのですか...、

percentage=0.1 
cumsum(df$Amount)[round(quantile(0:nrow(df),percentage))] 
+0

コードが機能しない、' missing ')' – rbm

+0

確かに:修正済み –