我試圖爲多個數據子集創建一個R中的分位數表。在R中爲多個數據子集創建一個分位數表
現在,我有一個向量表DATA
中的ID(p_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
}
}
我知道自己的問題出在什麼地方指標,但我似乎無法得到其中索引應該去。建議?
感謝您的幫助。我認爲聚合函數會爲我節省很多時間。我已經做了進一步的研究,但似乎不斷得到一個錯誤,'由'必須是一個列表。我試圖使用值和數據框。我的代碼是:aggregate(x = mydata $ q1,by = p_ids,fun = median)現在,爲了生成p_ids的「列表」,我使用了唯一函數 - p_ids < - unique(mydata $ p_id)。 – user1489719 2012-07-17 22:27:30
也意識到,如果我使用list(),我照顧這個問題,但最後與參數必須具有相同長度的錯誤消息..(代碼是:聚合(x = mydata $ q1,by = list (p_ids),fun = median) – user1489719 2012-07-17 22:36:32
如果你也是R newbie:aggregate(x = mydata,by = list(mydata $ v1),fun = median),那麼mydata必須是一個數據框,其中所有的因素都是數字的(因此可以計算一箇中位數),然後mydata $ v1就是你想要的項目分組的矢量 - 對於我來說這就是字段p_id。 – user1489719 2012-07-17 23:11:43