我想將某個列上的數據組分組,然後將函數應用於返回多個列的分組數據。藉助於舉例,考慮以下我可以通過變異從一個組創建多個列嗎?
Names = append(rep('Mark',10),rep('Joe',10))
Spend = rnorm(length(Names),50,0.5)
df <- data.frame(
Names,
Spend
)
get.mm <- function(data){
return(list(median(data),mean(data)))
}
這裏,get.mm
返回兩個數字的列表。我想申請get.mm
到df %>% group_by(Names)
並且結果有兩列,每個輸出一個函數。
期望的結果應該是
Names median mean
<fctr> <dbl> <dbl>
1 Joe 49.89284 49.9504
2 Mark 50.17244 50.0735
我在這裏簡單的功能演示的方式,我知道我可能只是不喜歡
df %>% group_by(Names) %>% summarise(median = median(Spend), mean = mean(Spend))
見'summarise_at()'和https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html –
本博客文章是非常相關:https://www.r-bloggers.com/programming-with-dplyr-by-using-dplyr/ –