Jestem prawdopodobnie robi coś głupiego i nie widząc go, ale:R strptime rok i miesiąc z nr ogranicznik powrocie NA
> strptime("201101","%Y%m")
[1] NA
help strptime:
% Y Rok z wiekiem
% m miesiąc jako liczba dziesiętna (01-12)
Jestem prawdopodobnie robi coś głupiego i nie widząc go, ale:R strptime rok i miesiąc z nr ogranicznik powrocie NA
> strptime("201101","%Y%m")
[1] NA
help strptime:
% Y Rok z wiekiem
% m miesiąc jako liczba dziesiętna (01-12)
Wystarczy wkleić do pola dzień (powiedzmy, "01"), które ignorujesz:
R> shortdate <- "201101"
R> as.Date(paste(shortdate, "01", sep=""), "%Y%m%d")
[1] "2011-01-01"
R>
Wolę as.Date()
dat i strptime()
dla POSIXct
obiektów, czyli daty i godziny.
można następnie przekształcić analizowany Date
obiektu do POSIXlt
obiektu odzyskać rok i miesiąc:
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>
Jest to standardowe zachowanie POSIX z lat jako „rok - 1900” i miesiącach jako zero-indeksowane.
, więc w R nie można powiedzieć, że nie ma cyfry dnia, trzeba wstrzyknąć założenie 01. dziwne. – userJT
Znalazłeś błąd w dokumentacji z * 'strptime' * że rok-miesiąc-dzień musi być dostarczony, co nigdy nie jest nigdzie stwierdzone: *" Dla strptime ciąg wejściowy nie musi określać daty całkowicie: przyjmuje się, że nieokreślona sekundy, minuty lub godziny są zerowe, a nieokreślony rok, miesiąc lub dzień jest bieżącym. "* – smci