Mis datos son así (por ejemplo):
ID Rate State 1 24 AL 2 35 MN 3 46 FL 4 34 AL 5 78 MN 6 99 FL
Datos:
structure(list(ID = 1:6, Rate = c(24L, 35L, 46L, 34L, 78L, 99L), State = structure(c(1L, 3L, 2L, 1L, 3L, 2L), .Label = c("AL","FL", "MN"), class = "factor")), .Names = c("ID", "Rate", "State"), class = "data.frame", row.names = c(NA, -6L))
Quiero dividir los datos por estado y quiero obtener 3 conjuntos de datos como a continuación:
data set 1 ID Rate State 1 24 AL 4 34 AL data set 2 ID Rate State 2 35 MN 5 78 MN data set 3 ID Rate State 3 46 FL 6 99 FL
¿Qué función debería usar?
Estaba pensando en la función de división o subconjunto, pero todavía no tengo idea todavía.
Podríamos usar split
:
mylist <- split(df, df$State) mylist $AL ID Rate State 1 1 24 AL 4 4 34 AL $FL ID Rate State 3 3 46 FL 6 6 99 FL $MN ID Rate State 2 2 35 MN 5 5 78 MN
Para acceder al número de elementos:
mylist[[1]]
o por nombre:
mylist$AL ID Rate State 1 1 24 AL 4 4 34 AL
?split
Descripción
split divide los datos en el vector x en los grupos definidos por f . Las formas de reemplazo reemplazan los valores correspondientes a dicha división. unsplit invierte el efecto de split.