在R中为多个数据子集创建一个Quantiles表

时间:2012-07-06 21:12:32

标签: r indexing

我试图在 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
    }
}

我知道我的问题出现在索引的某处,但我似乎无法获得索引的位置。建议?

2 个答案:

答案 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()的第二个论点是你想要多少个箱子。