Discussion:
[R-es] Resumen de R-help-es, Vol 108, Envío 11
Andrés Hirigoyen
2018-02-11 11:51:28 UTC
Permalink
Gracias, pruebo ambas opciones.
Un saludo
Envíe los mensajes para la lista R-help-es a
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
Si responde a algún contenido de este mensaje, por favor, edite la
"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.
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
Subject: [R-es] Optimizar función
mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Ejemplo
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.
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
Subject: Re: [R-es] Optimizar función
Content-Type: text/plain; charset="utf-8"; Format="flowed"
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'.
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
datos %>%
group_by(distrito) %>%
summarise_if(is.numeric,
funs(media = mean, maximo = max, minimo = min, desvio =
sd))
Un saludo
Álvaro
Ejemplo
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.
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
https://stat.ethz.ch/mailman/listinfo/r-help-es
------------------------------
Message: 3
Date: Sat, 10 Feb 2018 19:21:10 +0000
Subject: Re: [R-es] Optimizar función
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
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'.
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
datos %>%
group_by(distrito) %>%
summarise_if(is.numeric,
funs(media = mean, maximo = max, minimo = min, desvio =
sd))
Un saludo
Álvaro
Ejemplo
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.
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
https://stat.ethz.ch/mailman/listinfo/r-help-es
_______________________________________________
R-help-es mailing list
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
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]]
Loading...