`split`

`split` is a function that divides a vector or a data frame into smaller groups.

Examples

How do I divide a vector into different groups?

Click to see solution
``````data <- c(5, 6, 8, 2, 1, 2, 18, 19)
groups <- c('A', 'A', 'A', 'B', 'C', 'C'',C', 'C')
split(x = data, f = groups)``````
``\$A``
``[1] 5 6 8``
``\$B``
``[1] 2``
``\$C``
``[1]  1  2 18 19``

How do I split a data.frame into groups?

Click to see solution
``````df <- data.frame(Product=c('X', 'X', 'Y', 'Y', 'Y', 'Z'),
Condition=c('T', 'T', 'F', 'F', 'T', 'F'),
Score=c(303, 128, 341, 319, 54, 74),
Quality=c(38, 27, 224, 228, 32, 41))

df``````
``````df
Product Condition Score Quality
1       X         T   303      38
2       X         T   128      27
3       Y         F   341     224
4       Y         F   319     228
5       Y         T    54      32
6       Z         F    74      41``````
``split(df, f = df\$Product)``
``\$X``
``````Product Condition Score Quality
1       X         T   303      38
2       X         T   128      27``````
``\$Y``
`````` Product Condition Score Quality
3       Y         F   341     224
4       Y         F   319     228
5       Y         T    54      32``````
``\$Z``
``````Product Condition Score Quality
6       Z         F    74      41``````

How can I simply split a list and convert it to a data frame?

Click to see solution
``````Letters <- c("a", "b", "c", "a", "b", "c", "a", "b", "c")
Numbers <- c(1, 2, 3, 15, 40, 5, 33, 88, 7)

#splitting by name and converting to data.frame
as.data.frame(split(Numbers, Letters))``````
``````   a  b c
1  1  2 3
2 15 40 5
3 33 88 7``````