[英]Applying Quantile Buckets to Rows
我的目標是為給定的列建立分位數,然后根據這些五分位數為每一行分配適當的存儲桶。
確定五分位數的數據很容易:
quantile(df$x, probs=seq(0,1,0.2),na.rm = TRUE)
但是對於如何使用函數將信息分配給每一行而不是手動將其全部散列,我有些困惑。 我周圍使用發揮apply
和tapply
,但還沒有完全到達那里。 這樣的事情基本上會產生與上述相同的信息,但是會在存儲桶中引用特定的UID和其他列:
apply(df, 2, quantile, probs = c(0.2, 0.4, 0.6, 0.8, 1.0), na.rm = TRUE)
如果我理解您的意思,請使用虹膜樣本數據:
q <- quantile(iris$Sepal.Length, probs=seq(0,1,0.2),na.rm = TRUE)
得到五分位數。 然后,您可以使用cut
將觀察值分配給存儲桶。
iris$qc <- cut(iris$Sepal.Length, q)
table(iris$qc)
給你
(4.3,5] (5,5.6] (5.6,6.1] (6.1,6.52] (6.52,7.9]
31 33 30 25 30
我想這就是你想要的。 您可以根據需要更改名稱,也可以使用選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.