# NOT RUN {
v <- iris$Sepal.Length # A numeric vector
f <- GRP(iris$Species) # A grouping
## default vector method
BY(v, f, sum) # Sum by species
head(BY(v, f, scale)) # Scale by species (please use fscale instead)
head(BY(v, f, scale, use.g.names = FALSE)) # Omitting auto-generated names
BY(v, f, quantile) # Species quantiles: by default stacked
BY(v, f, quantile, expand.wide = TRUE) # Wide format
## matrix method
m <- qM(num_vars(iris))
BY(m, f, sum) # Also return as matrix
BY(m, f, sum, return = "data.frame") # Return as data.frame.. also works for computations below
head(BY(m, f, scale))
head(BY(m, f, scale, use.g.names = FALSE))
BY(m, f, quantile)
BY(m, f, quantile, expand.wide = TRUE)
BY(m, f, quantile, expand.wide = TRUE, # Return as list of matrices
return = "list")
## data.frame method
BY(num_vars(iris), f, sum) # Also returns a data.fram
BY(num_vars(iris), f, sum, return = 2) # Return as matrix.. also works for computations below
head(BY(num_vars(iris), f, scale))
head(BY(num_vars(iris), f, scale, use.g.names = FALSE))
BY(num_vars(iris), f, quantile)
BY(num_vars(iris), f, quantile, expand.wide = TRUE)
BY(num_vars(iris), f, quantile, # Return as list of matrices
expand.wide = TRUE, return = "list")
# }
# NOT RUN {
<!-- % No code relying on suggested package -->
# }
# NOT RUN {
## grouped data frame method
library(magrittr) # Note: Used because |> is not available on older R versions
giris <- fgroup_by(iris, Species)
giris %>% BY(sum) # Compute sum
giris %>% BY(sum, use.g.names = TRUE, # Use row.names and
keep.group_vars = FALSE) # remove 'Species' and groups attribute
giris %>% BY(sum, return = "matrix") # Return matrix
giris %>% BY(sum, return = "matrix", # Matrix with row.names
use.g.names = TRUE)
giris %>% BY(quantile) # Compute quantiles (output is stacked)
giris %>% BY(quantile, # Much better, also keeps 'Species'
expand.wide = TRUE)
# }
Run the code above in your browser using DataLab