Cómo agregar puntos de datos individuales después de una revisión de gráfico en R
Estoy tratando de agregar mis nuevos datos recolectados de una revisión de gráficos a mi base de datos, pero no estoy logrando hacerlo.
He intentado programar una nueva variable y luego usar una función lógica para elegir qué dato utilizar, pero usar una variable completa no funciona, ya que es un vector y no un único punto de datos. ¿Cómo puedo programarlo para usar el punto de datos de la misma observación pero de una variable diferente?
mydf <- structure(list(Year = c(2014L, 2014L, 2015L, 2015L, 2016L),
Var1 = c(15, 12, 2, 16, NA),
Var2 = c(15, 13, 104, NA, NA),
Agree = c(1, 0, 0, 1, 1)),
.Names = c("Year", "Var1", "Var2", "Agree"),
row.names = c(NA, 5L), class = "data.frame")
mydf$true <- if_else(mydf$Agree == 1, mydf$Var1, mydf$Var2)
Mensaje de error:
Error: true
must be length 0 (length of condition
) or one, not 5.
Ejecuta rlang::last_error()
para ver dónde se produjo el error.
Lo que quiero:
mydf
Resultado esperado:
Year Var1 Var2 Agree True
1 2014 15 15 1 15
2 2014 13 12 0 12
3 2015 2 104 0 104
4 2015 16 NA 1 16
5 2016 NA NA 1 NA
¿Alguna idea?
davy.ai
Parece que el problema está en la función
if_else()
que devuelve un vector en lugar de un único dato. En su lugar, puedes usar la funciónifelse()
, que funciona elemento por elemento y devolverá un vector de la misma longitud que la condición. Aquí tienes cómo puedes modificar el código:{r}
mydf$true <- ifelse(mydf$Agree == 1, mydf$Var1, mydf$Var2)
Esto debería darte el resultado deseado.