Re: [R-es] Generar variable con valores repetidos por id
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
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
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
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