Probablemente estoy haciendo algo estúpido y no verlo, pero:R strptime año y mes sin delimitador de regresar NA
> strptime("201101","%Y%m")
[1] NA
De ayuda strptime:
% Y Año con siglo
% m mes como número decimal (01-12)
Probablemente estoy haciendo algo estúpido y no verlo, pero:R strptime año y mes sin delimitador de regresar NA
> strptime("201101","%Y%m")
[1] NA
De ayuda strptime:
% Y Año con siglo
% m mes como número decimal (01-12)
Sólo tienes que pegar un campo de día (por ejemplo, "01") que usted no hace caso:
R> shortdate <- "201101"
R> as.Date(paste(shortdate, "01", sep=""), "%Y%m%d")
[1] "2011-01-01"
R>
prefiero as.Date()
para conocer las fechas y strptime()
para POSIXct
objetos, fechas y horarios decir.
continuación, puede convertir el Date
objeto analizado en un objeto para recuperar POSIXlt
año y mes:
R> mydt <- as.Date(paste(shortdate, "01", sep=""), "%Y%m%d")
R> myp <- as.POSIXlt(mydt)
R> c(myp$year, myp$mon)
[1] 111 0
R>
Este es un comportamiento POSIX estándar con año como "año - 1900" y meses como indexados a cero.
así que en R no se puede decir que no hay un dígito de día, tiene que inyectar la suposición de 01. extraño. – userJT
Encontraste la falla de documentación con * 'strptime' * ese año-mes-día debe ser suministrado, lo cual nunca aparece en ninguna parte: *" Para strptime la cadena de entrada no necesita especificar la fecha completamente: se asume que no especificada segundos, minutos u horas son cero, y un año, un mes o un día no especificado es el actual. "* – smci