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