Hola, a partir de un data frame quiero crear una columna que aplique una secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si el grupo tiene más de 12 elementos, el contador tendrÃa que reiniciarse a 1 en la fila 13, y asà sucesivamente. El resultado deseado serÃa algo asÃ: grupo seq A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 1 A 2 B 1 B 2 B 3 B 4 B 5 B 6 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 10 Alguna idea? Gracias!!
[R-es] Secuencia fija de números por grupo
4 messages · Rubén Coca, Isidro Hidalgo, Marcelino de la Cruz Rot
Hola, Rubén: ¿Los datos de grupo están ordenados, o puedes tenerlos "revueltos"? Quiero decir con revueltos que primero tengas una "A", luego una "C", luego otra "A", etc. Un saludo Isidro Hidalgo Arellano Observatorio del Mercado de Trabajo ConsejerÃa de EconomÃa, Empresas y Empleo http://www.castillalamancha.es/ -----Mensaje original----- De: R-help-es <r-help-es-bounces en r-project.org> En nombre de Rubén Coca Enviado el: jueves, 19 de julio de 2018 9:16 Para: Lista R <r-help-es en r-project.org> Asunto: [R-es] Secuencia fija de números por grupo Hola, a partir de un data frame quiero crear una columna que aplique una secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si el grupo tiene más de 12 elementos, el contador tendrÃa que reiniciarse a 1 en la fila 13, y asà sucesivamente. El resultado deseado serÃa algo asÃ: grupo seq A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 1 A 2 B 1 B 2 B 3 B 4 B 5 B 6 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 10 Alguna idea? Gracias!! _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Si están ordenados, una forma podrÃa ser utilizando "table()". Por ejemplo:
datosOrigen = rep(c("A", "B", "C"),c(14, 6, 10))
tabla = table(datosOrigen)
grupo = c()
secuencia = c()
datos = data.frame(grupo = grupo, secuencia = secuencia)
for (i in 1:length(tabla)){
parte = data.frame(grupo = rep(attr(tabla, "dimnames")$datos[i],
tabla[i]), secuencia = rep(c(1:12), length.out = tabla[i]))
datos = rbind(datos, parte)
}
Un saludo
Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
ConsejerÃa de EconomÃa, Empresas y Empleo
http://www.castillalamancha.es/
-----Mensaje original-----
De: Isidro Hidalgo Arellano <ihidalgo en jccm.es>
Enviado el: jueves, 19 de julio de 2018 9:28
Para: 'r-help-es en r-project.org' <r-help-es en r-project.org>
Asunto: RE: [R-es] Secuencia fija de números por grupo
Hola, Rubén:
¿Los datos de grupo están ordenados, o puedes tenerlos "revueltos"? Quiero
decir con revueltos que primero tengas una "A", luego una "C", luego otra
"A", etc.
Un saludo
Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
ConsejerÃa de EconomÃa, Empresas y Empleo http://www.castillalamancha.es/
-----Mensaje original-----
De: R-help-es <r-help-es-bounces en r-project.org> En nombre de Rubén Coca
Enviado el: jueves, 19 de julio de 2018 9:16
Para: Lista R <r-help-es en r-project.org>
Asunto: [R-es] Secuencia fija de números por grupo
Hola, a partir de un data frame quiero crear una columna que aplique una
secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si
el grupo tiene más de 12 elementos, el contador tendrÃa que reiniciarse a 1
en la fila 13, y asà sucesivamente.
El resultado deseado serÃa algo asÃ:
grupo seq
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
A 11
A 12
A 1
A 2
B 1
B 2
B 3
B 4
B 5
B 6
C 1
C 2
C 3
C 4
C 5
C 6
C 7
C 8
C 9
C 10
Alguna idea?
Gracias!!
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, suponiendo que tu data.frame se llama "midf" y tu variable (factor) se llama "grupo", una posible solución serÃa esta: midf$seq<-unlist(sapply(table(midf$grupo), function(x) seq(1,x, by=1))) midf Que guardarÃa la secuencia dentro de midf en una nueva variable llamada "seq" Saludos, Marcelino El 19/07/2018 a las 9:15, Rubén Coca escribió:
Hola, a partir de un data frame quiero crear una columna que aplique una secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si el grupo tiene más de 12 elementos, el contador tendrÃa que reiniciarse a 1 en la fila 13, y asà sucesivamente. El resultado deseado serÃa algo asÃ: grupo seq A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 1 A 2 B 1 B 2 B 3 B 4 B 5 B 6 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 10 Alguna idea? Gracias!! [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es .
Marcelino de la Cruz Rot Depto. de BiologÃa y GeologÃa FÃsica y QuÃmica Inorgánica Universidad Rey Juan Carlos Móstoles España