[R-es] calculo porcentaje de subcategirías para individuos diferentes

neo er|cconch@munoz @end|ng |rom gm@||@com
Jue Oct 24 17:51:23 CEST 2019


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]]



Más información sobre la lista de distribución R-help-es