Tengo un conjunto de datos llamado universidad y una de las columnas es "aceptada". Hay dos valores para esta columna: 1 (que significa que el estudiante fue aceptado) y 0 (que significa que el estudiante no fue aceptado). Debía encontrar el porcentaje de estudiantes aceptados.
Yo hice esto...
table(college$accepted)
lo que me dio la frecuencia de 1 y 0. (1 = 44,224 y 0 = 75,166). Luego sumé manualmente esos dos valores (119,390) y dividí 44,224/119,390. Esto está bien y me da el valor que estaba buscando. Pero realmente me gustaría saber cómo podría hacer esto con código R, ya que estoy seguro de que hay una manera de hacerlo en la que simplemente no he pensado.
¡Gracias!
------------------------------------
Si es una columna 0/1 simple, entonces solo necesitas tomar la media de la columna.
mean_accepted <- mean(df$accepted)
0
------------------------------------
Quizás puedas usar prop.table como se muestra a continuación
prop.table(table(college$accepted))["1"]
2
¡Gracias! Sólo una pregunta: ¿funcionaría esto con una columna no numérica? Digamos que tengo valores de sí y no, ¿podría simplemente usarlos?su función y reemplazar "1" con "Sí"? ¿O qué pasaría si hubiera más de dos valores? ¿Funcionaría todos igual?
-zinger001
26/03/2021 a las 20:37
@zinger001 Funciona con columnas no numéricas y más de dos valores. Sólo necesita escribir el nombre del valor interesado, por ejemplo, "Sí", para ver su proporción.
- ThomasIsCoding
26/03/2021 a las 20:39
------------------------------------
primero puedes sumar la columna y luego contar el número total en la columna
sum(college$accepted)/length(college$accepted)
------------------------------------
Para que el código sea más explícito y describa mejor su intención, le sugiero utilizar una condición para identificar los casos que cumplen con sus criterios de inclusión. Por ejemplo:
college$accepted == 1
Luego toma el promedio del vector lógico para calcular la proporción (entre 0 y 1), multiplica por 100 para convertirlo en un porcentaje.
100 * mean(college$accepted == 1, na.rm = TRUE)