Lorena Saavedra Aracena
2019-Oct-24 02:06 UTC
[R-es] calculo porcentaje de subcategirías para individuos diferentes
Buenas noches, Soy nueva en R y a veces me cuesta pensar los cálculos de manera más práctica, por los que les agradecería la ayuda. Tengo una matriz de datos con una dim = 35745 19, correspondientes a ubicaciones de 39 perros, cada perro tiene poco más o poco menos de 1000 datos. Necesito saber el % de uso de hábitat natural. Es un sencillo cálculo de porcentaje, pero me gustaría hacerlo mas automatizado para no tomar tanto tiempo en correrlo manualmente. Entonces tengo una columna con la ID de cada perro, y otra con las categorías de ambiente (urbano, rural y mar). He calculado el promedio con este script para el perro 1: ## encontrar el numero total de zonas naturales por perro P01 <-subset(TODOS, TODOS$ID=="P01") ruralP01 <- subset(P01,P01$Zone=="rural") marP01 <- subset(P01,P01$Zone=="mar") nrow(P01) nrow(ruralP01) nrow(marP01) porcent_natP01 <- (nrow(ruralP01) + nrow(marP01))*100/ nrow(P01) porcent_natP01 y llego a 61,35%. Es la forma más básica que se me ocurrió, podrían ayudarme a hacerlo más automatizado? he intentado un par de formas pero me es un poco complicado verlo pensando que tengo primero categorías de perros y luego de ambientes. Les agradezco, Saludos -- *Lorena Saavedra A.**Ing. Recursos Naturales Renovables* *+56 9 9880 2972* [[alternative HTML version deleted]]
Javier Marcuzzi
2019-Oct-24 03:21 UTC
[R-es] calculo porcentaje de subcategirías para individuos diferentes
Estimada Lorena Saavedra Aracena No alcanzo a comprender su pregunta, en R la respuesta mucha veces depende de los datos y en la forma en que estos son accedidos, por ejemplo, si usted tiene un data.frame que se llama datos posiblemente summay(datos) alcanza, si no es así alguna función sobre los datos y a esta summary(). Yo llevo muchos anos con R, y la forma adecuada va cambiando con el tiempo, simplemente porque aparecen librerías que facilitan el trabajo, pero no se preocupe por eso, piense en lo que usted cree oportuno, es preferible que conozca bien lo básico, y nuevamente lo básico, y la razón es sobre la posibilidad de combinar esto básico como función dentro de otra librería, el camino inverso la confundiría. Aparte de summary está table y ftable, esto da el resultado en frecuencias, no es justo porcentaje, pero es casi sinónimo. Espero que se comprenda mi explicación, no estoy seguro de haber respondido a su pregunta. Javier Marcuzzi El mié., 23 oct. 2019 a las 23:07, Lorena Saavedra Aracena (< l.saavedra.aracena en gmail.com>) escribió:> Buenas noches, > Soy nueva en R y a veces me cuesta pensar los cálculos de manera más > práctica, por los que les agradecería la ayuda. > Tengo una matriz de datos con una dim = 35745 19, correspondientes a > ubicaciones de 39 perros, cada perro tiene poco más o poco menos de 1000 > datos. > Necesito saber el % de uso de hábitat natural. Es un sencillo cálculo de > porcentaje, pero me gustaría hacerlo mas automatizado para no tomar tanto > tiempo en correrlo manualmente. > Entonces tengo una columna con la ID de cada perro, y otra con las > categorías de ambiente (urbano, rural y mar). > He calculado el promedio con este script para el perro 1: > > ## encontrar el numero total de zonas naturales por perro > > P01 <-subset(TODOS, TODOS$ID=="P01") > ruralP01 <- subset(P01,P01$Zone=="rural") > marP01 <- subset(P01,P01$Zone=="mar") > > nrow(P01) > nrow(ruralP01) > nrow(marP01) > > porcent_natP01 <- (nrow(ruralP01) + nrow(marP01))*100/ nrow(P01) > porcent_natP01 > > y llego a 61,35%. Es la forma más básica que se me ocurrió, podrían > ayudarme a hacerlo más automatizado? he intentado un par de formas pero me > es un poco complicado verlo pensando que tengo primero categorías de perros > y luego de ambientes. > > Les agradezco, > > Saludos > > -- > > *Lorena Saavedra A.**Ing. Recursos Naturales Renovables* > *+56 9 9880 2972* > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Carlos Ortega
2019-Oct-24 07:06 UTC
[R-es] calculo porcentaje de subcategirías para individuos diferentes
Hola, Como eres nueva en R, es mejor que conociendo ciertas funciones básicas de "R" mejor que hacer lo mismo con código más complejo. Lo que quieres hacer se puede resolver con un par de funciones de "R": - table() - prop.table() En particular en tu caso, de esta forma obtienes los porcentajes que buscas: #-------------------------------- resultado <- prop.table(table(TODOS$ID, TODOS$Zone)) resultado #-------------------------------- Busca la ayuda de estas dos funciones para entender lo que hacen, que creo que es bastante sencillo. Saludos, Carlos Ortega www.qualityexcellence.es El jue., 24 oct. 2019 a las 4:07, Lorena Saavedra Aracena (< l.saavedra.aracena en gmail.com>) escribió:> Buenas noches, > Soy nueva en R y a veces me cuesta pensar los cálculos de manera más > práctica, por los que les agradecería la ayuda. > Tengo una matriz de datos con una dim = 35745 19, correspondientes a > ubicaciones de 39 perros, cada perro tiene poco más o poco menos de 1000 > datos. > Necesito saber el % de uso de hábitat natural. Es un sencillo cálculo de > porcentaje, pero me gustaría hacerlo mas automatizado para no tomar tanto > tiempo en correrlo manualmente. > Entonces tengo una columna con la ID de cada perro, y otra con las > categorías de ambiente (urbano, rural y mar). > He calculado el promedio con este script para el perro 1: > > ## encontrar el numero total de zonas naturales por perro > > P01 <-subset(TODOS, TODOS$ID=="P01") > ruralP01 <- subset(P01,P01$Zone=="rural") > marP01 <- subset(P01,P01$Zone=="mar") > > nrow(P01) > nrow(ruralP01) > nrow(marP01) > > porcent_natP01 <- (nrow(ruralP01) + nrow(marP01))*100/ nrow(P01) > porcent_natP01 > > y llego a 61,35%. Es la forma más básica que se me ocurrió, podrían > ayudarme a hacerlo más automatizado? he intentado un par de formas pero me > es un poco complicado verlo pensando que tengo primero categorías de perros > y luego de ambientes. > > Les agradezco, > > Saludos > > -- > > *Lorena Saavedra A.**Ing. Recursos Naturales Renovables* > *+56 9 9880 2972* > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
neo
2019-Oct-24 15:51 UTC
[R-es] calculo porcentaje de subcategirías para individuos diferentes
Hola Lorena, en R siempre hay varias formas de hacer lo mismo, y cada uno elige de acuerdo a sus gustos ... yo soy un poquito fanático de la libreria data.table, así es que yo haría lo siguiente: 1. Crearía una nueva columna que uniera los ambientes rural y mar, por ejemplo, que fuera 1 si el ambiente es rural o mar, 0 en otro caso ... llamémosla RYM. 2. Calcularía el porcentaje de la siguiente forma usando la librería data.table ... Para usar esta librería tienes que instalar antes el paquete usando install.packages("data.table") y cargar la librería con library(data.table) ... dale una lecturaa la ayuda de data.table o lee un poco en internet cómo funciona para entender como es que se hace el cálculo. Básicamente, la estructura de un data.table es así DT[i, j, by] ... en el espacio del índice i haces operaciones para las filas, en el espacio de j haces operaciones para las columnas y en el espacio de by indicas como agrupar los datos para las operaciones que haces, entonces: porcentaje <- TODOS[, sum(RYM) / length(TODOS), by=ID] esto significa que en el espacio de i no hacemos nada, en el espacio de las columnas decimos que calcule una nueva columna en que divida la suma de 1 que hay en RYM (lo que nos va a dar el número de veces que el perrito está en ambiente rural o mar) por el numero total de celdas (que entiendo nos daría el número total de lugares en que ha estado el perrito), y esto lo hacemos agrupado por ID, de modo que el cálculo se realiza para cada perro. Eso ... espero que te sirva. Saludos !! Eric. On 23-10-19 23:06, Lorena Saavedra Aracena wrote:> Buenas noches, > Soy nueva en R y a veces me cuesta pensar los cálculos de manera más > práctica, por los que les agradecería la ayuda. > Tengo una matriz de datos con una dim = 35745 19, correspondientes a > ubicaciones de 39 perros, cada perro tiene poco más o poco menos de 1000 > datos. > Necesito saber el % de uso de hábitat natural. Es un sencillo cálculo de > porcentaje, pero me gustaría hacerlo mas automatizado para no tomar tanto > tiempo en correrlo manualmente. > Entonces tengo una columna con la ID de cada perro, y otra con las > categorías de ambiente (urbano, rural y mar). > He calculado el promedio con este script para el perro 1: > > ## encontrar el numero total de zonas naturales por perro > > P01 <-subset(TODOS, TODOS$ID=="P01") > ruralP01 <- subset(P01,P01$Zone=="rural") > marP01 <- subset(P01,P01$Zone=="mar") > > nrow(P01) > nrow(ruralP01) > nrow(marP01) > > porcent_natP01 <- (nrow(ruralP01) + nrow(marP01))*100/ nrow(P01) > porcent_natP01 > > y llego a 61,35%. Es la forma más básica que se me ocurrió, podrían > ayudarme a hacerlo más automatizado? he intentado un par de formas pero me > es un poco complicado verlo pensando que tengo primero categorías de perros > y luego de ambientes. > > Les agradezco, > > Saludos >[[alternative HTML version deleted]]
neo
2019-Oct-24 17:24 UTC
[R-es] calculo porcentaje de subcategirías para individuos diferentes
Hola Lorena, tu habías preguntado tiempo atrás cómo hacer unos boxplots? Slds !! Eric. On 24-10-19 12:51, neo wrote:> > Hola Lorena, en R siempre hay varias formas de hacer lo mismo, y cada > uno elige de acuerdo a sus gustos ... yo soy un poquito fanático de la > libreria data.table, así es que yo haría lo siguiente: > > 1. Crearía una nueva columna que uniera los ambientes rural y mar, por > ejemplo, que fuera 1 si el ambiente es rural o mar, 0 en otro caso ... > llamémosla RYM. > > 2. Calcularía el porcentaje de la siguiente forma usando la librería > data.table ... Para usar esta librería tienes que instalar antes el > paquete usando install.packages("data.table") y cargar la librería con > library(data.table) ... dale una lecturaa la ayuda de data.table o lee > un poco en internet cómo funciona para entender como es que se hace el > cálculo. Básicamente, la estructura de un data.table es así DT[i, j, > by] ... en el espacio del índice i haces operaciones para las filas, > en el espacio de j haces operaciones para las columnas y en el espacio > de by indicas como agrupar los datos para las operaciones que haces, > entonces: > > porcentaje <- TODOS[, sum(RYM) / length(TODOS), by=ID] > > esto significa que en el espacio de i no hacemos nada, en el espacio > de las columnas decimos que calcule una nueva columna en que divida la > suma de 1 que hay en RYM (lo que nos va a dar el número de veces que > el perrito está en ambiente rural o mar) por el numero total de celdas > (que entiendo nos daría el número total de lugares en que ha estado el > perrito), y esto lo hacemos agrupado por ID, de modo que el cálculo se > realiza para cada perro. > > Eso ... espero que te sirva. > > Saludos !! > > Eric. > > > > > On 23-10-19 23:06, Lorena Saavedra Aracena wrote: >> Buenas noches, >> Soy nueva en R y a veces me cuesta pensar los cálculos de manera más >> práctica, por los que les agradecería la ayuda. >> Tengo una matriz de datos con una dim = 35745 19, correspondientes a >> ubicaciones de 39 perros, cada perro tiene poco más o poco menos de 1000 >> datos. >> Necesito saber el % de uso de hábitat natural. Es un sencillo cálculo de >> porcentaje, pero me gustaría hacerlo mas automatizado para no tomar tanto >> tiempo en correrlo manualmente. >> Entonces tengo una columna con la ID de cada perro, y otra con las >> categorías de ambiente (urbano, rural y mar). >> He calculado el promedio con este script para el perro 1: >> >> ## encontrar el numero total de zonas naturales por perro >> >> P01 <-subset(TODOS, TODOS$ID=="P01") >> ruralP01 <- subset(P01,P01$Zone=="rural") >> marP01 <- subset(P01,P01$Zone=="mar") >> >> nrow(P01) >> nrow(ruralP01) >> nrow(marP01) >> >> porcent_natP01 <- (nrow(ruralP01) + nrow(marP01))*100/ nrow(P01) >> porcent_natP01 >> >> y llego a 61,35%. Es la forma más básica que se me ocurrió, podrían >> ayudarme a hacerlo más automatizado? he intentado un par de formas pero me >> es un poco complicado verlo pensando que tengo primero categorías de perros >> y luego de ambientes. >> >> Les agradezco, >> >> Saludos >>[[alternative HTML version deleted]]
Apparently Analagous Threads
- Pasar palabras de una lista a una variable del dataframe
- Optimizar código
- Re: [libvirt] Libvirtd running as root tries to access oneadmin (OpenNebula) NFS mount but throws: error: can’t canonicalize path
- Re: [libvirt] Libvirtd running as root tries to access oneadmin (OpenNebula) NFS mount but throws: error: can’t canonicalize path
- Re: [libvirt] Libvirtd running as root tries to access oneadmin (OpenNebula) NFS mount but throws: error: can’t canonicalize path