[英]Categorize dataframe by percentile in R
我有以下數據:
set.seed(15)
ddf <- data.frame(
gp1 = sample(1:3, 200, replace=T),
gp2 = sample(c('a','b'), 200, replace=T),
param = sample(10:20, 200, replace=T)
)
head(ddf)
gp1 gp2 param
1 2 a 18
2 1 b 11
3 3 a 15
4 2 b 20
5 2 a 17
6 3 b 11
我必須創建另一個名為“類別”的列,如果該行的“參數”大於該gp1和gp2的第75個百分點,則該列的值必須為1。
我嘗試了以下操作,但不確定是否正確:
ddf$category = with(ddf, ifelse(param>quantile(ddf[ddf$gp1==gp1 & ddf$gp2==gp2,]$param, .75, na.rm=T), 1, 0) )
上面的代碼正確嗎,否則該怎么辦? 謝謝你的幫助。
(將“值”更改為“參數”后)
ddf = data.frame(gp1, gp2, param)
ddf$category <- with(ddf, ave(param, gp1,gp2,
FUN=function(x) x > quantile(x,.95) ) )
> ddf
gp1 gp2 param category
1 2 a 20 0
2 2 a 16 0
3 1 a 12 0
4 1 b 16 0
5 3 b 19 0
snipped
> sum(ddf$category)
[1] 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.