我试图在 R 中为多个数据子集创建一个分位数表。
现在,我在表p_ids
中有一个id(DATA
)向量,它们不是连续的。对于p_ids
中的每个值,我希望列出分位数。
到目前为止,我已尝试过各种变体:
i <- 1
n <- 1
for (i in p_ids) {
while(n <= nrow(data)) {
quantiles[n] <- quantile(subset(alldata$variableA, alldata$variableB == i),
probs = c(0,1,2,3)/3)
n <- n + 1
}
}
我知道我的问题出现在索引的某处,但我似乎无法获得索引的位置。建议?
答案 0 :(得分:0)
你应该考虑使用聚合来为你做分位数 http://stat.ethz.ch/R-manual/R-devel/library/stats/html/aggregate.html
设置FUN =分位数和= p_ids应该做你想要的。
除非我误解了你的问题。
答案 1 :(得分:0)
看看cut()
。 E.g:
q <- cut(p_ids, 2)
data.frame(P_id = p_ids, Bin = q)
cut()
的第二个论点是你想要多少个箱子。