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.

Cómo combinar count() y group_by() para contar las respuestas con un valor determinado, agrupadas por encuestado?

Tengo un conjunto de datos donde la respuesta a una serie de preguntas repetidas es el resultado de interés. Debido a esto, me gustaría contar el número de respuestas de “no lo sé”, agrupando esas cuentas por ID del encuestado y agregarlo como una nueva columna. Básicamente, tengo datos que se ven así:

ID respuesta
1
1 No lo sé
2 No
2 No lo sé

Y quiero que se vean así:

ID respuesta nolosecount
1 1
1 No lo sé 1
2 No 1
2 No lo sé 1

Este es el código que he escrito más recientemente:

df$nolosecount <- group_by(as_tibble(df$ID)) %>% count(df$respuesta == “No lo sé”)

Pero parece que obtengo un mensaje de error sin importar lo que intento con estos dos comandos. ¿Qué me falta?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Necesitas usar la función mutate() para agregar la nueva columna y especificar la variable de agrupación ID en la función group_by(). Aquí está el código corregido:

    “`{r}
    library(dplyr)

    df <- df %>%
    group_by(ID) %>%
    mutate(idkcount = sum(response == “No lo sé”, na.rm = TRUE))
    “`

    Esto debería crear una nueva columna idkcount en tu marco de datos df, que cuenta el número de respuestas “No lo sé” para cada ID de encuestado. La función sum() con la sintaxis response == "No lo sé" se utiliza para contar el número de valores TRUE. El argumento na.rm = TRUE se utiliza para ignorar cualquier valor faltante, que puede estar presente en tus datos.

Comments are closed.