設想一個數據表平均數與一個子集
ID Score
1 10
1 13
1 12
2 10
3 6
3 6
平均爲用戶1是11.67。平均爲用戶2爲10的平均用戶3爲6。
我尋找將是((11.67 + 10 + 6)/ 3)= 9.223`
爲進行復制感受UniqAverage免費使用......
library(data.table)
df = data.frame(ID=c(1,1,1,2,3,3), Score1=c(10,13,12,10,6,6))
dt = data.table(df)
前一個問題導致我學習我可以做
dt[, mean(Score1), ID][,mean(V1)]
要通過ID得到這個平均平均值。
但是,如果我只想得到10分以上的分數呢?
所以我風與
ID V1
1 12.5
2 0
3 0
所以我最後的結果將是4.167
企圖使用失敗。
dt[, mean(which(Score1) > 10), ID][,mean(V1)]
在大多數情況下(如果不是全部的話),計算平均值的情況不適用。見http://ksrowell.com/blog-visualizing-data/2014/05/09/is-an-average-of-averages-accurate-hint-no/ – PavoDive
是的。這比我的簡單得多。我現在通過執行dt [dt [,Score1> 10],mean(Score1),ID] – Jibril
來構建一個例子,例如'dt = data.table(...)'。不需要以'df = data.frame(..)'開始。 – Frank