2016-02-16 74 views
-2

我正在嘗試計算多個類的總體平均值。目前數據庫格式很長。我嘗試選擇第一個ID號(組變量1),然後選擇一個我感興趣的虛擬變量(stem = 1)類(分組變量2),然後計算所收到分數的一個GPA平均值(即乾的GPA平均值)在感興趣的類(幹= 1)。使用分組變量計算多行的平均值

我附上了一個下面的數據庫的例子。總體而言,我想知道如何計算每個學生的幹部GPA。

See example here

我一直在使用庫(鬥志),describeBy(數據,數據集的$ id,數據集$幹)試過,但無濟於事。有什麼建議麼?

+1

easy base R,試試'help('aggregate')'讓你開始...... –

+0

除'aggregate'之外,''ave'也是有用的。 – RHertel

回答

1

我更喜歡這些操作的dplyr包。嘗試

df %>% group_by(class) %>% summarise(mean_class=mean(class)) 

例如,使用mtcars數據集:

library(dplyr) 
mtcars %>% group_by(cyl) %>% summarise(mean_disp = mean(disp)) 

會給你基於分組變量cyl的的disp一切手段。

+0

謝謝!你能澄清%>%的含義嗎?謝謝! –

+0

這就是所謂的管道操作員。它需要左邊的任何東西,並將其作爲任何右邊的參數。例如,'mtcars%>%group_by(cyl)'應該被讀取爲「採集數據集mtcars」,然後通過循環體大小對其進行「分組」,然後......它相當於命令'group_by(mtcars,cyl) '因爲'group_by'的第一個參數是一個數據框。 – coffeinjunky

+1

在更一般的說明中,這個問題屬於'split-apply-combine'主題。如果你google了,你會發現更多的方法來完成上述操作。此外,你似乎對於stackoverflow來說很新穎,這沒關係,我一直在那裏;;)只是想說當張貼這裏時發佈一個'minimal reproducable example'(谷歌它)與期望的輸出通常是可取的。 – coffeinjunky