Me pregunto si puedo estar seguro de que split() siempre está ordenando los resultados. ¿Cuál es la regla para la clasificación? El ejemplo funciona, pero no he encontrado la línea correspondiente en las páginas de ayuda. Lo siento si malinterpreté la ayuda.se divide siempre ordenando internamente los marcos de datos resultantes
dat.exmpl <- data.frame(cbind(a=11:20, b=rep(3,10)), fac = c(2,1))
split(dat.exmpl, dat.exmpl$fac)
dat.exmpl <- data.frame(cbind(a=11:20, b=rep(3,10)), fac=rep(c("blueb","bluea")))
split(dat.exmpl, dat.exmpl$fac)
ExtraQ: ¿Hay alguna manera de seguir el orden que se proporciona?
, gracias buena respuesta . Sin embargo, ¿puede explicar más en detalle qué significa "orden de los factores de su variable de agrupación"? ¿Split() coacciona internamente la variable de agrupación en factores? y ¿cuál es el orden de clasificación normal de eso? Para la variable numérica esto es obvio, pero para los personajes no estoy seguro de por qué está ordenando "blueb" antes de "bluea". ¿realmente se clasifica de acuerdo con la cadena? – Sebastian
Si la variable de agrupamiento ya es factor, entonces 'split' no hace ninguna clasificación. En mi ejemplo, 'blueb' está antes de' bluea' porque así es como definí los niveles de factor, es decir, ese es el punto de mi ejemplo. En resumen: 'split' no hace ninguna clasificación. Si parece que la clasificación está sucediendo, es por la forma en que 'factor()' trata los niveles de los factores (generalmente ordenados lexicográficamente). Para obtener más detalles, consulte la ayuda para '? Factor', en particular, el argumento' levels'. – Andrie
Gracias por aclarar. Sin embargo, me refería a la clasificación de split si NO usas factores (como en mi ejemplo original). ¿Tengo razón en que la división hace que la coerción interna de la variable de agrupación se convierta en un factor donde ocurre la clasificación? – Sebastian