Gracias, pruebo ambas opciones. Un saludo El 11 de febrero de 2018, 08:00, <[email protected]> escribió:
> Envíe los mensajes para la lista R-help-es a > [email protected] > > Para subscribirse o anular su subscripción a través de la WEB > https://stat.ethz.ch/mailman/listinfo/r-help-es > > O por correo electrónico, enviando un mensaje con el texto "help" en > el asunto (subject) o en el cuerpo a: > [email protected] > > Puede contactar con el responsable de la lista escribiendo a: > [email protected] > > Si responde a algún contenido de este mensaje, por favor, edite la > linea del asunto (subject) para que el texto sea mas especifico que: > "Re: Contents of R-help-es digest...". Además, por favor, incluya en > la respuesta sólo aquellas partes del mensaje a las que está > respondiendo. > > > Asuntos del día: > > 1. Optimizar función (Andrés Hirigoyen) > 2. Re: Optimizar función (Álvaro Hernández) > 3. Re: Optimizar función (Carlos J. Gil Bellosta) > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sat, 10 Feb 2018 13:09:22 -0300 > From: Andrés Hirigoyen <[email protected]> > To: Lista R <[email protected]> > Subject: [R-es] Optimizar función > Message-ID: > <CAOaTypVGM+Tm-MUfvpOKdwR_r4WzKjVRVuNPQm5=j9T9YKoY=w@ > mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Buenas para tod@s, tengo una consulta para poder optimizar tiempos. > Ejemplo > tengo el siguiente dataframe: > > distrito<-c("A","A","A","B","B","B","C","C","C","A","A","B","B","C") > Sex<-c("M","F","M","F","M","F","M","F","M","F","M","F","M","F") > Edad<-c(25,36,25,25,25,19,36,39,36,65,54,25,28,28) > Ingreso<-c(125,365,265,987,690,369,325,369,789,854,254,268,698,258) > Aporte <- c(3,6,3,6,9,6,9,7,9,7,4,8,2,8) > datos<-data.frame(distrito=distrito,Sex=Sex,Edad=Edad, > Ingreso=Ingreso,Aporte=Aporte) > > Quiero aplicar la function *summarise *del paquete *dplyr *a las 3 > variables númericas. > Para la variable Aporte por ejemplo: > > descrip<-function(data) { > grupos <- group_by(data, distrito) > result <- > summarise(grupos, > media = mean(Aporte), > maximo = max(Aporte), > minimo = min(Aporte), > desvio= sd(Aporte) > ) > return(result) > } > > Pero me gustaría automatizarla para que corra para todas las variables del > dataframe (3 en este caso pero van a ser mas de 23). > Sugerencias??? > > Muchas gracias > -- > > [[alternative HTML version deleted]] > > > > > ------------------------------ > > Message: 2 > Date: Sat, 10 Feb 2018 17:41:00 +0100 > From: Álvaro Hernández <[email protected]> > To: [email protected] > Subject: Re: [R-es] Optimizar función > Message-ID: <[email protected]> > Content-Type: text/plain; charset="utf-8"; Format="flowed" > > Hola, Andrés: > > Con dplyr tienes todas las variantes de 'summarise' para hacer lo que > dices. Por ejemplo, puedes elegir en qué variables quieres aplicarlo con > 'summarise_at' o definir una condición con 'summarise_if'. > > * Para aplicar las funciones que definas sobre esas tres variables: > > datos %>% > group_by(distrito) %>% > summarise_at(vars(Aporte, Ingreso, Edad), > funs(media = mean, maximo = max, minimo = min, desvio = > sd)) > > * Para aplicar esas funciones sobre todas las variables numéricas que > tengas: > > datos %>% > group_by(distrito) %>% > summarise_if(is.numeric, > funs(media = mean, maximo = max, minimo = min, desvio = > sd)) > > Un saludo > Álvaro > > El 10/02/18 a las 17:09, Andrés Hirigoyen escribió: > > Buenas para tod@s, tengo una consulta para poder optimizar tiempos. > Ejemplo > > tengo el siguiente dataframe: > > > > distrito<-c("A","A","A","B","B","B","C","C","C","A","A","B","B","C") > > Sex<-c("M","F","M","F","M","F","M","F","M","F","M","F","M","F") > > Edad<-c(25,36,25,25,25,19,36,39,36,65,54,25,28,28) > > Ingreso<-c(125,365,265,987,690,369,325,369,789,854,254,268,698,258) > > Aporte <- c(3,6,3,6,9,6,9,7,9,7,4,8,2,8) > > datos<-data.frame(distrito=distrito,Sex=Sex,Edad=Edad, > Ingreso=Ingreso,Aporte=Aporte) > > > > Quiero aplicar la function *summarise *del paquete *dplyr *a las 3 > > variables númericas. > > Para la variable Aporte por ejemplo: > > > > descrip<-function(data) { > > grupos <- group_by(data, distrito) > > result <- > > summarise(grupos, > > media = mean(Aporte), > > maximo = max(Aporte), > > minimo = min(Aporte), > > desvio= sd(Aporte) > > ) > > return(result) > > } > > > > Pero me gustaría automatizarla para que corra para todas las variables > del > > dataframe (3 en este caso pero van a ser mas de 23). > > Sugerencias??? > > > > Muchas gracias > > -- > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > [email protected] > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > ------------------------------ > > Message: 3 > Date: Sat, 10 Feb 2018 19:21:10 +0000 > From: "Carlos J. Gil Bellosta" <[email protected]> > To: Álvaro Hernández <[email protected]> > Cc: [email protected] > Subject: Re: [R-es] Optimizar función > Message-ID: > <CADg83edj9XA-826TKF5d-mwuuRnNZOCz1mdrLu--RfcC5C027w@ > mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Hola, ¿qué tal? > > Puedes probar > > melt >> summarize >> dcast > > Así no tienes que teclear el nombre de las 23 variables numéricas. > > Un saludo, > > Carlos J. Gil Bellosta > http://ww.datanalytics.com > > El sáb., 10 feb. 2018 a las 17:41, Álvaro Hernández (<[email protected]>) > escribió: > > > Hola, Andrés: > > > > Con dplyr tienes todas las variantes de 'summarise' para hacer lo que > > dices. Por ejemplo, puedes elegir en qué variables quieres aplicarlo con > > 'summarise_at' o definir una condición con 'summarise_if'. > > > > * Para aplicar las funciones que definas sobre esas tres variables: > > > > datos %>% > > group_by(distrito) %>% > > summarise_at(vars(Aporte, Ingreso, Edad), > > funs(media = mean, maximo = max, minimo = min, desvio = > > sd)) > > > > * Para aplicar esas funciones sobre todas las variables numéricas que > > tengas: > > > > datos %>% > > group_by(distrito) %>% > > summarise_if(is.numeric, > > funs(media = mean, maximo = max, minimo = min, desvio = > > sd)) > > > > Un saludo > > Álvaro > > > > El 10/02/18 a las 17:09, Andrés Hirigoyen escribió: > > > Buenas para tod@s, tengo una consulta para poder optimizar tiempos. > > Ejemplo > > > tengo el siguiente dataframe: > > > > > > distrito<-c("A","A","A","B","B","B","C","C","C","A","A","B","B","C") > > > Sex<-c("M","F","M","F","M","F","M","F","M","F","M","F","M","F") > > > Edad<-c(25,36,25,25,25,19,36,39,36,65,54,25,28,28) > > > Ingreso<-c(125,365,265,987,690,369,325,369,789,854,254,268,698,258) > > > Aporte <- c(3,6,3,6,9,6,9,7,9,7,4,8,2,8) > > > > > datos<-data.frame(distrito=distrito,Sex=Sex,Edad=Edad, > Ingreso=Ingreso,Aporte=Aporte) > > > > > > Quiero aplicar la function *summarise *del paquete *dplyr *a las 3 > > > variables númericas. > > > Para la variable Aporte por ejemplo: > > > > > > descrip<-function(data) { > > > grupos <- group_by(data, distrito) > > > result <- > > > summarise(grupos, > > > media = mean(Aporte), > > > maximo = max(Aporte), > > > minimo = min(Aporte), > > > desvio= sd(Aporte) > > > ) > > > return(result) > > > } > > > > > > Pero me gustaría automatizarla para que corra para todas las variables > > del > > > dataframe (3 en este caso pero van a ser mas de 23). > > > Sugerencias??? > > > > > > Muchas gracias > > > -- > > > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > > R-help-es mailing list > > > [email protected] > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > _______________________________________________ > > R-help-es mailing list > > [email protected] > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[alternative HTML version deleted]] > > > > > ------------------------------ > > Subject: Pié de página del digest > > _______________________________________________ > R-help-es mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > ------------------------------ > > Fin de Resumen de R-help-es, Vol 108, Envío 11 > ********************************************** > -- *Andrés Hirigoyen* * Prof. Ciencias Biológicas* *Ing. Agr. Forestal (MSc) * *http://andreshirigoyen.com/web/ <http://andreshirigoyen.com/web/>* [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
