Declaraciones If_else basadas en múltiples columnas que crean un puntaje promediando cuántas declaraciones verdaderas en R.
Tengo varias columnas que he colocado en categorías.
Los datos están en categorías como:
Q1 Q2 – TS
Q3 – NI
Q4 Q5 Q6 – VENTAS
Quiero crear una columna para cada categoría que proporcione una puntuación.
por ejemplo:
Donde cada categoría de preguntas tiene una puntuación.
4 = +1
-4 = +0
NA o 0 = espacio en blanco/sin valor
Entonces, básicamente, si la categoría contiene 3 preguntas y 1 pregunta tiene NA o 0, no suma ningún valor a la puntuación general.
Q5 Q6 Q7 VENTAS_PUNTUACIÓN
NA. 4. 0 = 1/1 = 1.
(porque solo una pregunta agregó valor a la puntuación general)
Q5 Q6 Q7 VENTAS_PUNTUACIÓN
0. -4. -4 = (0+0)/2 = 0.
He estado intentando crear las declaraciones condicionales if_else en R, pero no tengo suerte.
Esto es lo que he intentado:
df$TS_Score <- (sum(if_else(df$Q5 > 0 | df$Q6 >0 | df$Q7 >0, 1,
if_else(df$Q5 < 0 | df$Q6 <0 | df$Q7 <0, 0,
if_else(df$Q5 == 0 | df$Q6 == 0 | df$Q7 == 0, “”,
if_else(df$Q5 == NA | df$Q6 == NA | df$Q7==NA,””
))))))
davy.ai
Para crear columnas para cada categoría que den una puntuación basada en los criterios proporcionados, se pueden utilizar las instrucciones if-else junto con un bucle for para iterar a través de cada fila del conjunto de datos. Aquí tienes un ejemplo de cómo se puede hacer:
Resultado:
El dataframe resultante tiene columnas para cada puntuación de categoría, basada en los criterios proporcionados. Si una categoría contiene valores NA o 0, no añade ningún valor a la puntuación.