I tienen trama de datos con estructura siguiente:R: elementos de división de una lista en sublistas
pat = c(rep(1, 50), rep(2, 50), rep(3, 50))
inc = rep(c(rep(1, 5), rep(2, 5), rep(3, 5), rep(4, 5), rep(5, 5), rep(6, 5),
rep(7, 5), rep(8, 5), rep(9, 5), rep(10, 5)), 3)
df = data.frame(cbind(pat, inc))
df se divide en una lista de elementos:
all.inc = split(df, inc)
Ahora desea dividir cada elemento de esta lista en sub-listas. Algo como:
all.pat = split(all.inc, pat)
Esto no funciona, obviamente. Ya probé las funciones plyr
y lapply
, pero no conseguí que funcionara.
¿Alguna idea?
Ok, funciona. Como resultado, estoy obteniendo una lista con la misma longitud (10) que all.inc. Pero quiero tener cada elemento en, por ejemplo, all.pat [1] para ser un elemento de lista única. all.pat [1] tiene la longitud 1, pero debe tener una longitud 3. La lista completa debe tener una longitud de 30, en este caso. Espero, esto es claro? – Markus
@Markus, eso es porque la lista está * anidada *. La indexación de las sub-listas requeriría: 'length (all.pat [[1]])'. – A5C1D2H2I1M1N2O1R2T1
bien, no hay problema. Acabo de encontrar la función "unlist". Con la opción recursiva = F, entrega el resultado deseado. ¡Muchas gracias! – Markus