Cómo usar group_by() con rep_len() en R
Déjame saber si necesito un ejemplo ficticio para esto, pero básicamente tengo un df de subgrupos, cada subgrupo tiene una longitud diferente (normalmente 30-35k valores). Me gustaría unir en un vector con reciclaje parcial de vectores de c(1:200). A partir de esta pregunta, tengo la idea de que puedo usar replen() para sortear el anti-reciclaje parcial del dataframe. El problema es que no puedo definir length.out en replen(), ya que length.out cambia con cada subgrupo. Cualquier ayuda sería apreciada. Intenté hacer esto:
df_new <- df %>%
group_by(subgroup) %>%
mutate(newcol <- rep_len(1:200, length.out=.))
Lo cual arrojó un error de longitud inválida. También intenté
df_new <- df %>%
group_by(subgroup) %>%
mutate(newcol <- rep_len(1:200, length.out=nrow(.)))
Pero esto arroja un error que length.out es la longitud de todo mi df, no del subgrupo anterior. ¡Cualquier ayuda sería apreciada!
davy.ai
El problema aquí es que el parámetro length.out en rep_len() necesita ser dinámico y cambiar con cada subgrupo. Una forma de resolver esto es utilizar la función n() dentro de mutate() para obtener el número de filas en cada subgrupo, y luego utilizar eso como parámetro length.out en rep_len(). Aquí tienes un ejemplo:
Esto debería unir el vector con reciclaje parcial asegurando que el parámetro length.out cambie dinámicamente para cada subgrupo.