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