[R-es] Generar variable con valores repetidos por id

Carlos Ortega co| @end|ng |rom qu@||tyexce||ence@e@
Lun Feb 15 22:40:50 CET 2021


Hola,

Sí, mira un par de alternativas con un data.frame de ejemplo para simular
el conjunto de datos equivalente al que tienes..

#-------------------------
library(dplyr)
res_df <- my_df %>%
  group_by(pais_id) %>%
  mutate( gini_avg = mean(gini))
head(res_df)
tail(res_df)

library(data.table)
my_dt <- as.data.table(my_df)
my_dt[ , gini_avg := mean(gini), pais_id]
my_dt
#-------------------------

Gracias,
Carlos Ortega
www.qualityexcellence.es

El lun, 15 feb 2021 a las 16:59, Rolando Valdez (<rvaldezr using gmail.com>)
escribió:

> No funciona, solo genera el valor = 1 en las primeras 25 observaciones y
> NAs en el resto.
>
> El dom, 14 de feb. de 2021 a la(s) 22:03, Ivan Corredor castillo (
> ivangcorredorc using gmail.com) escribió:
>
> > Buenos días,
> > Puedes intentar colocando el índice de las filas para cada país 1:25 y el
> > índice de la columna 1. Los valores que colocó son de ejemplo, tienes que
> > buscar el índice de las filas y de las columnas para que le asignes los
> > valores creados por la función.
> >
> > db[1:25, 1]<- within(db, {mgini = ave(gini, id)}
> >
> > El dom., 14 de febrero de 2021 9:26 p. m., Rolando Valdez <
> > rvaldezr using gmail.com> escribió:
> >
> >> Estimada comunidad:
> >>
> >> Estoy intentando generar una variable con el valor promedio del índice
> de
> >> gini en un rango de 25 años para un conjunto de 38 países. Esto en un
> >> pdata.frame. Sin embargo, necesito que el valor promedio de cada país se
> >> repita 25 veces en cada uno de estos.
> >>
> >> He intentado con la función aggregate tal como sigue:
> >>
> >> > db$mgini <- aggregate(db$gini, by = list(db$id), FUN = mean, na.rm =
> >> TRUE)
> >> Error in `$<-.data.frame`(x, name, value) :
> >>   replacement has 38 rows, data has 950
> >>
> >> Con este último es que genera un valor para cada país.
> >>
> >> Después intenté con la función within, y al parecer sí obtengo el valor
> >> medio repetido 25 veces en cada país, no obstante, no logro incorporarlo
> >> en
> >> el pdata.frame.
> >>
> >> > within(db, {mgini = ave(gini, id)})
> >>
> >> ¿Alguna sugerencia?
> >>
> >> Gracias de antemano.
> >>
> >> --
> >> Rol~
> >>
> >>         [[alternative HTML version deleted]]
> >>
> >> _______________________________________________
> >> R-help-es mailing list
> >> R-help-es using r-project.org
> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >
>
> --
> Rol~
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es