Función en R para mostrar si el encuestado respondió sí a múltiples opciones.
Tengo respuestas a una encuesta en la que se pidió al encuestado que seleccionara todas las opciones que correspondieran. Cada elección se trata como su propia variable: si seleccionó sí en la opción de selección múltiple, se le asigna un valor de 1 y si no seleccionó, se le asigna un valor de 0.
Quiero ver si alguien seleccionó una opción, cuántos también seleccionaron la opción B o la opción C. Idealmente, quiero crear una tabla que muestre el porcentaje de personas que respondieron sí (01) a la opción MR1 y también respondieron sí a las opciones MR2 y MR3.
df <- read.table(text = “ID MR1 MR2 MR3
Person1 1 1 1
Person2 1 0 0
Person3 1 1 0″, header = T, sep = ” “, stringsAsFactors = F)
Idealmente, me gustaría que la salida se parezca algo así: mostrando el 100% de las personas que seleccionaron MR1 también seleccionaron MR1, 2/3 de las personas que seleccionaron MR1 también seleccionaron MR2 o MR3, y 1/3 de las personas que seleccionaron MR2 también seleccionaron MR3, esto será útil para ver si hay alguna opción MR que es más probable que se agrupe junto con otras.
¿Hay algún código para algo así?
MR1 MR2 MR3
MR1 1 0.66 0.66
MR2 0.66 1 0.33
MR3 0.66 0.33 1
davy.ai
Sí, existe un código para crear una tabla como esta. Puedes utilizar la función
cor
en R para calcular la correlación entre las opciones. Dado que las opciones se tratan como variables binarias (con 1 para “sí” y 0 para “no”), la correlación mostrará el porcentaje de personas que seleccionaron ambas opciones. Aquí tienes un ejemplo de código:“`{r}
Cargar los datos
df <- read.table(text = “ID MR1 MR2 MR3
Person1 1 1 1
Person2 1 0 0
Person3 1 1 0″, header = TRUE, sep = ” “, stringsAsFactors = FALSE)
Calcular la correlación entre las opciones
cor_options <- cor(df[, -1])
Redondear los valores a dos decimales
cor_options <- round(cor_options, 2)
Agregar nombres de fila y columna
rownames(cor_options) <- colnames(cor_options) <- c(“MR1”, “MR2”, “MR3”)
Imprimir la tabla
cor_options
MR1 1.00 0.67 0.67
MR2 0.67 1.00 0.33
MR3 0.67 0.33 1.00
“`
Esto significa que el 100% de las personas que seleccionaron MR1 también seleccionaron MR1 (lo cual tiene sentido ya que MR1 siempre es seleccionado en esta muestra), el 67% de las personas que seleccionaron MR1 también seleccionaron MR2 o MR3, y así sucesivamente.