2017-04-20 71 views
0

位數我有一個DF這樣的:(R):計算獨特的行值統一

> df<-data.frame(Client.code = 
c(100451,100451,100523,100523,100523,100525),dayref = c(24,30,15,13,17,5)) 
> df 
    Client.code dayref 
1  100451  24 
2  100451  30 
3  100523  15 
4  100523  13 
5  100523  17 
6  100525  5 

距離問題付款期限一年的分佈。

Usign這個數據和以上給出這樣一個DF2:

Client.Code Days 
1 100451   16 
1 100523   16 
1 100460   35 

因爲我有一個合理的位數概率足夠的數據。我想知道如何建立一個循環,以便在這個df2的每一行中按照第一個df分配一個分位數。

+0

嘗試'庫(data.table); setDT(DF )[,分位數(dayref),。(Client.code)]' – akrun

回答

0

我們可以通過添加它們的載體使用data.table

library(data.table) 
setDT(df)[, .(Quantile = quantile(dayref)), Client.code] 

或用tidyverse

+0

它的工作原理。但不是很有用,可能是因爲我的問題不夠好。基於過去的分佈,用給定的向量來賦值分位數是可能的。謝謝 –

+0

@ÁlvaroRodríguez如果您有不同的情況,請您更新您的問題或創建一個新問題 – akrun

+0

現在進行編輯。 –

0
tapply(df$dayref, df$Client.code, quantile) 

您可以指定特定的百分

tapply(df$dayref, df$Client.code, quantile, 1:19/20) 

您可能需要制定這樣

tapply(df$dayref, df$Client.code, quantile, probs = 1:19/20) 

,你可以添加na.rm = TRUE爲另一種說法,如果你可能會來港

+0

這是一個很棒的解決我有兩個相關的問題,如果感興趣:1)如何在xlsx中編寫這個數組。 2)可以表示與給定的數字向量相關聯的分位數的循環,更可寫 –