2016-07-16 64 views
-5

我有具有以下的列的數據幀Donations如何使用聚合函數來計算R中的多個列?

head(Donations) 
Gender $inYear04 $inYear05 $inYear06 
M  19000  25000  7000 
F  17000  15000  12000 
F  10000  14000  10500 
M  12000  19000  8000 
M  2000  11000  18000 
F  10500  16000  19500 

以下是所希望的輸出:

Gender Count Percentage_Count Total_Donation Percentage_Donation Mean_Donation 
    M 51   0.5   500000   0.38    7000 
    F 49   0.5   800000   0.61    9000 

輸出列標籤是通過在$inYear05$inYear04,和$inYear06使用操作衍生。

aggregate()最好的處理方式?

PS:我是新與R編程

回答

0

嘗試

library(dplyr) 
library(tidyr) 

df %>% 
    gather(key, value, -Gender) %>% 
    group_by(Gender) %>% 
    summarise(Count = n(), Percentage_Count = n()/nrow(.), 
      Total_Donation = sum(value), 
      Percentage_Donation = sum(value)/sum(.$value), 
      Mean_Donation = mean(value)) 

其中給出:

# A tibble: 2 x 6 
# Gender Count Percentage_Count Total_Donation Percentage_Donation Mean_Donation 
# <fctr> <int>   <dbl>   <int>    <dbl>   <dbl> 
#1  F  9    0.5   124500   0.5071283  13833.33 
#2  M  9    0.5   121000   0.4928717  13444.44