Hola, Sí, en el ejemplo de la ayuda de "ifelse" se advierte de este problema y ofrece dos alternativas: una la que he propuesto y otra. Con cualquiera de las dos el problema se resuelve.
## ifelse() strips attributes ## This is important when working with Dates and factors x <- seq(as.Date("2000-02-29"), as.Date("2004-10-04"), by = "1 month") ## has many "yyyy-mm-29", but a few "yyyy-03-01" in the non-leap years y <- ifelse(as.POSIXlt(x)$mday == 29, x, NA) head(y) # not what you expected ... ==> need restore the class attribute: class(y) <- class(x) y ## ==> Again a case where it is better *not* to use ifelse(), but ## both more efficient and clear: y2 <- x y2[as.POSIXlt(x)$mday != 29] <- NA stopifnot(identical(y2, y)) Saludos, Carlos Ortega www.qualityexcellence.es El 13 de febrero de 2018, 9:11, Álvaro Hernández <alvar...@um.es> escribió: > Yo entiendo que lo que quiere es saber cómo hacer el 'ifelse' para que no > le devuelva un vector numérico porque para transformarlo podría hacer > simplemente 'as_date(fechas2)'. > > El problema yo creo que es por tema coerción con el 'NA' (sumado al > comportamiento de 'ifelse'). Estaba buscando alternativas como > NA_character_, NA_numeric_, etc. pero no encuentro para fecha, así que, se > podría hacer algo como: > > fechas2 <- if_else(fechas > "2016-12-31", as_date(NA), fechas) > > Un saludo > Álvaro > > El 13/02/18 a las 01:04, Carlos Ortega escribió: > > Hola, >> >> Esta es una forma... >> >> library(lubridate) >>> library(dplyr) >>> >>> fechas <- c("2016-07-15", "2016-10-12", "2017-02-11") >>> fechas_new <- ymd(fechas) >>> >>> res_out <- ifelse(year(fechas_new) > 2016, NA, fechas_new) >>> res_out >>> >> [1] 16997 17086 NA >> >>> class(res_out) <- class(fechas_new) >>> res_out >>> >> [1] "2016-07-15" "2016-10-12" NA >> >> >> No lo había visto hasta ahora, es un caso que se cuenta en la ayuda de >> "ifelse()" con un ejemplo... >> >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> >> >> 2018-02-13 0:54 GMT+01:00 patricio fuenmayor < >> patricio.fuenma...@gmail.com>: >> >> hola Patricio, usa: >>> dplyr::if_else >>> >>> [[alternative HTML version deleted]] >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >>> >> >> > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es