2017-02-27 57 views
1

平均每個值這是我的數據幀:比較在小組

id kind subject price 
1 1 one 200 
2 1 one 100 
3 2 two 200 
4 1 three 200 
5 2 two 100 

我需要用比較(每個ID)的邏輯值的價格再添列和價格的平均內部組具有相同主題。要得到類似的東西:

id kind subject price less_than_mean 
1 1 one 200 FALSE 
2 1 one 100 TRUE 
3 2 two 200 FALSE 
4 1 three 200 TRUE 
5 2 two 100 TRUE 

大數據集最強大的決定是什麼?

+2

輸出是否正確? '(df1,價格 akrun

回答

2

dplyr溶液:

group_by(df, subject) %>% 
    mutate(less_than_mean = price<=mean(price)) 

mean一種用於在第一行中定義的每個組分別應用,和mutate只是增加了一個新列。例如,您也可以通過group_by(df, subject, kind)進行更復雜的分組。

與基地tapply一樣,但應該比dplyr組操作慢得多 - 我認爲dplyr是大型數據框最快的解決方案之一。