es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  , ,

Answer

  1. Avatar for 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


    Esto te dará la tabla que solicitaste:
     MR1  MR2  MR3
    

    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.

Comments are closed.