Split a dataframe according to the levels of variables in the dataframe. The variables to split by can be given as a formula or as a character vector.
split_by(data, ..., omit = TRUE)
splitBy(formula, data, omit = TRUE)
# S3 method for class 'splitByData'
head(x, n = 6L, ...)
# S3 method for class 'splitByData'
tail(x, n = 6L, ...)
split_by.legacy(data, formula, drop = TRUE)
splitBy.legacy(formula, data = parent.frame(), drop = TRUE)
A data frame
A character vector or, right hand sided formula or a listing of variables.
Logical Should variables split on be omitted from the output. Defaults to TRUE.
A character vector or a right hand sided formula.
An object.
A single integer. If positive or zero, size for the resulting object: number of elements for a vector (including lists), rows for a matrix or data frame or lines for a function. If negative, all but the "n" last/first number of elements of "x".
Obsolete
A list of dataframes.
split_by(CO2, ~Treatment+Type)
#> listentry Treatment Type
#> 1 chilled|Mississippi nonchilled Quebec
#> 22 chilled|Quebec chilled Quebec
#> 43 nonchilled|Mississippi nonchilled Mississippi
#> 64 nonchilled|Quebec chilled Mississippi
split_by(CO2, Treatment, Type)
#> listentry Treatment Type
#> 1 chilled|Mississippi nonchilled Quebec
#> 22 chilled|Quebec chilled Quebec
#> 43 nonchilled|Mississippi nonchilled Mississippi
#> 64 nonchilled|Quebec chilled Mississippi
split_by(CO2, c("Treatment", "Type"))
#> listentry Treatment Type
#> 1 chilled|Mississippi nonchilled Quebec
#> 22 chilled|Quebec chilled Quebec
#> 43 nonchilled|Mississippi nonchilled Mississippi
#> 64 nonchilled|Quebec chilled Mississippi
split_by(CO2, Treatment)
#> listentry Treatment
#> 1 chilled nonchilled
#> 22 nonchilled chilled
x <- CO2 |> split_by(~Treatment)
head(x, 3)
#> $chilled
#> Plant Type conc uptake
#> 22 Qc1 Quebec 95 14.2
#> 23 Qc1 Quebec 175 24.1
#> 24 Qc1 Quebec 250 30.3
#>
#> $nonchilled
#> Plant Type conc uptake
#> 1 Qn1 Quebec 95 16.0
#> 2 Qn1 Quebec 175 30.4
#> 3 Qn1 Quebec 250 34.8
#>
tail(x, 3)
#> $chilled
#> Plant Type conc uptake
#> 82 Mc3 Mississippi 500 17.9
#> 83 Mc3 Mississippi 675 18.9
#> 84 Mc3 Mississippi 1000 19.9
#>
#> $nonchilled
#> Plant Type conc uptake
#> 61 Mn3 Mississippi 500 28.5
#> 62 Mn3 Mississippi 675 28.1
#> 63 Mn3 Mississippi 1000 27.8
#>
x <- CO2 |> split_by(~Treatment, omit=FALSE)
head(x, 3)
#> $chilled
#> Plant Type Treatment conc uptake
#> 22 Qc1 Quebec chilled 95 14.2
#> 23 Qc1 Quebec chilled 175 24.1
#> 24 Qc1 Quebec chilled 250 30.3
#>
#> $nonchilled
#> Plant Type Treatment conc uptake
#> 1 Qn1 Quebec nonchilled 95 16.0
#> 2 Qn1 Quebec nonchilled 175 30.4
#> 3 Qn1 Quebec nonchilled 250 34.8
#>
tail(x, 3)
#> $chilled
#> Plant Type Treatment conc uptake
#> 82 Mc3 Mississippi chilled 500 17.9
#> 83 Mc3 Mississippi chilled 675 18.9
#> 84 Mc3 Mississippi chilled 1000 19.9
#>
#> $nonchilled
#> Plant Type Treatment conc uptake
#> 61 Mn3 Mississippi nonchilled 500 28.5
#> 62 Mn3 Mississippi nonchilled 675 28.1
#> 63 Mn3 Mississippi nonchilled 1000 27.8
#>
## The "Old" interface
splitBy(~Treatment+Type, CO2)
#> listentry Treatment Type
#> 1 chilled|Mississippi nonchilled Quebec
#> 22 chilled|Quebec chilled Quebec
#> 43 nonchilled|Mississippi nonchilled Mississippi
#> 64 nonchilled|Quebec chilled Mississippi
splitBy(~Treatment+Type, data=CO2)
#> listentry Treatment Type
#> 1 chilled|Mississippi nonchilled Quebec
#> 22 chilled|Quebec chilled Quebec
#> 43 nonchilled|Mississippi nonchilled Mississippi
#> 64 nonchilled|Quebec chilled Mississippi
splitBy(c("Treatment", "Type"), data=CO2)
#> listentry Treatment Type
#> 1 chilled|Mississippi nonchilled Quebec
#> 22 chilled|Quebec chilled Quebec
#> 43 nonchilled|Mississippi nonchilled Mississippi
#> 64 nonchilled|Quebec chilled Mississippi