0

我正在尝试在R中为多个数据子集创建一个分位数表。

现在,我p_ids在 tableDATA中有一个不连续的 ids ( ) 向量。对于 中的每个值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
    }
}

我知道我的问题出在索引的某个地方,但我似乎无法找到索引应该去的地方。建议?

4

2 回答 2

0

您应该考虑使用聚合为您做分位数 http://stat.ethz.ch/R-manual/R-devel/library/stats/html/aggregate.html

设置 FUN=quantiles 和 by=p_ids 应该做你想做的。

那是除非我误解了你的问题。

于 2012-07-06T21:23:04.373 回答
0

看看cut()。例如:

q <- cut(p_ids, 2) 
data.frame(P_id = p_ids, Bin = q)

第二个参数cut()是你想要多少个垃圾箱。

于 2012-07-06T21:46:12.447 回答