У меня возникают проблемы с извлечением правильных значений символа из объекта PATIXct datetime с использованием strftime(). Dput() мои данные образца ниже:POSIXct для символа через strftime() приводит к неправильному результату
dput(df1)
structure(list(FlowDate3 = structure(c(1388534400, 1388534400,
1388534400, 1388534400, 1388534400, 1388534400, 1388534400, 1388534400,
1388534400, 1388534400), class = c("POSIXct", "POSIXt"), tzone = "UTC"),
FlowDate4 = c("2013-12-31", "2013-12-31", "2013-12-31", "2013-12-31",
"2013-12-31", "2013-12-31", "2013-12-31", "2013-12-31", "2013-12-31",
"2013-12-31")), .Names = c("FlowDate3", "FlowDate4"), row.names = c(NA,
10L), class = "data.frame")
выглядит так:
> df1
FlowDate3 FlowDate4
1 2014-01-01 2013-12-31
2 2014-01-01 2013-12-31
3 2014-01-01 2013-12-31
4 2014-01-01 2013-12-31
5 2014-01-01 2013-12-31
6 2014-01-01 2013-12-31
7 2014-01-01 2013-12-31
8 2014-01-01 2013-12-31
9 2014-01-01 2013-12-31
10 2014-01-01 2013-12-31
> str(df1)
'data.frame': 10 obs. of 2 variables:
$ FlowDate3: POSIXct, format: "2014-01-01" "2014-01-01" "2014-01-01" ...
$ FlowDate4: chr "2013-12-31" "2013-12-31" "2013-12-31" "2013-12-31" ...
Для создания FlowDate4 я сделал следующее:
> strftime(df1$FlowDate3, "%Y-%m-%d")
[1] "2013-12-31" "2013-12-31" "2013-12-31" "2013-12-31" "2013-12-31" "2013-12-31"
[7] "2013-12-31" "2013-12-31" "2013-12-31" "2013-12-31"
, который, как вы можете видеть приводит к неправильным символьным строкам для даты в FlowDate3 ... год, месяц и дата отключены. Я бегал по многочисленным кругам, пытаясь понять, почему и я нахожусь в полной потере. strftime() не ведет себя так, как я пережил в прошлом. Любая помощь приветствуется.
Это всегда было так, или это новое требование для недавнего распределения R? Я не помню, чтобы когда-либо это делалось ... – stokeinfo
TimeZones ВСЕГДА были в замешательстве. –
@stokeinfo: вам, возможно, не пришлось это делать раньше, потому что у ваших данных не было атрибута 'tzone' или он существовал, но был установлен в ваш часовой пояс. Я не знаю, изменилось ли оно в последнее время в R. Вам нужно будет посмотреть файл NEWS и/или историю svn. –