【发布时间】:2015-09-25 04:53:29
【问题描述】:
您好,我的数据和格式似乎是正确的,但有时它只是不起作用。这是一个希望可重现的示例:
df = data.frame(t = c("2011-05-26 17:40:43", "2014-03-09 02:34:54"))
df
# t
# 1 2011-05-26 17:40:43
# 2 2014-03-09 02:34:54
df$t = strptime(df$t, '%Y-%m-%d %H:%M:%S')
df
# t
# 1 2011-05-26 17:40:43
# 2 2014-03-09 02:34:54
df$t = as.POSIXct(df$t)
df
# t
# 1 2011-05-26 17:40:43
# 2 <NA>
感谢任何帮助。
更新:应该与夏令时有关。我用 DST 的其他日期进行了测试
df = data.frame(t = c("2011-05-26 17:40:43", "2013-03-10 02:34:54", "2014-03-09 02:34:54", "2015-03-08 02:34:54"))
df
# t
# 1 2011-05-26 17:40:43
# 2 2013-03-10 02:34:54
# 3 2014-03-09 02:34:54
# 4 2015-03-08 02:34:54
df$t = strptime(df$t, '%Y-%m-%d %H:%M:%S')
df
# t
# 1 2011-05-26 17:40:43
# 2 2013-03-10 02:34:54
# 3 2014-03-09 02:34:54
# 4 2015-03-08 02:34:54
df$t = as.POSIXct(df$t)
df
# t
# 1 2011-05-26 17:40:43
# 2 <NA>
# 3 <NA>
# 4 <NA>
【问题讨论】:
-
我无法在 Linux 上运行的 R 版本
3.2.2上复制。 -
我也不能在 3.2.1 上。您可能需要重新启动 R 会话并查看问题是否消失。
-
谢谢大家~我在windows中使用的是3.2.1,已经重启了R几次...
-
碰巧,您所在的时区有夏令时吗?它发生在 2014 年 3 月 9 日吗?
-
嘿@Pascal!是的,那天是夏令时!我用其他 DST 天测试过,他们都有这个问题