Using dplyr, I'd like to summarize [sic] by a variable that I can vary (e.g. in a loop or apply-style command).
Typing the names in directly works fine:
library(dplyr)
ChickWeight %>% group_by( Chick, Diet ) %>% summarise( mw = mean( weight ) )
But group_by
wasn't written to take a character vector, so passing in results is harder.
v <- "Diet"
ChickWeight %>% group_by( c( "Chick", v ) ) %>% summarise( mw = mean( weight ) )
## Error
I'll post one solution, but curious to see how others have solved this.
The underscore functions of dplyr could be useful for that:
ChickWeight %>% group_by_( "Chick", v ) %>% summarise( mw = mean( weight ) )
From the new features in dplyr 0.3:
You can now program with dplyr – every function that uses non-standard evaluation (NSE) also has a standard evaluation (SE) twin that ends in _
. For example, the SE version of filter() is called filter_
(). The SE version of each function has similar arguments, but they must be explicitly “quoted”.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With