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

2021-02-15 Por tema Carlos Ortega
Vaya... no incluí la parte del data.frame... para que sea un ejemplo
reproducible...

#



*my_df <- data.frame(  pais_id = rep(1:38, each = 25),
gini = rnorm(25*38))*

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 22:40, Carlos Ortega ()
escribió:

> 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 ()
> 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 (
>> ivangcorred...@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 <
>> > rvald...@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@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@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2021-02-15 Por tema Carlos Ortega
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 ()
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 (
> ivangcorred...@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 <
> > rvald...@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@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@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2021-02-15 Por tema Rolando Valdez
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 (
ivangcorred...@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 <
> rvald...@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@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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2021-02-14 Por tema Ivan Corredor castillo
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 <
rvald...@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@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es