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