Como entrenamiento, estoy tratando de reproducir una transformación de datos en esta base de datos ( https://studysites.uk.sagepub.com/dsur/study/DSUR%20Data%20Files/Chapter%205/DownloadFestival(No%20Outlier).dat )
dlf$day2<-as.numeric(dlf$day2)
dlf$recday2b<- 1/(dlf$day2 + 1)
dlf$recday2b[is.na(dlf$recday2b)] <-0
usando ifelse, pero no puedo ifelsereemplazar los valores NA con 0s.
Intenté estos sin éxito:
dlf$recday2b<-ifelse(is.na(dlf$day2), replace(dlf$day2, NA, 0), 1/(dlf$day2 + 1))
dlf$recday2b<-ifelse(dlf$day2!="", 1/(dlf$day2 + 1), dlf$day2==0)
Solución del problema
Si entiendo correctamente, no tiene ningún problema para crear la nueva variable recday2b, pero solo desea cambiar cuando recday2b es NA a 0
Usando ifelse podrías probar
dlf$recday2b <-ifelse(is.na(dlf$recday2b), 0, dlf$recday2b)
dlf$recday2b <- ifelse(is.na(dlf$day2), 0, dlf$recday2b) #same result
De lo contrario, también tiene la replace_na()función que toma un marco de datos o un vector como argumento
No hay comentarios:
Publicar un comentario