【发布时间】:2014-11-26 07:50:15
【问题描述】:
早上好,
我正在尝试从字符转换为 POSIXct,但是当我这样做时,我会从数据中丢失小时和分钟。
hourlyData(数据框)
Login Expo EquityUSD Period UnrealizedProfitUSD
1 252957 0.00 7.187185 2014-02-03 00:00:00.000 0.00000
2 252957 0.00 7.187772 2014-02-03 01:00:00.000 0.00000
3 252957 0.00 7.188198 2014-02-03 02:00:00.000 0.00000
4 252957 0.00 7.187825 2014-02-03 03:00:00.000 0.00000
5 252957 0.00 7.187079 2014-02-03 04:00:00.000 0.00000
6 252957 0.00 7.187079 2014-02-03 05:00:00.000 0.00000
7 252957 0.00 7.188731 2014-02-03 06:00:00.000 0.00000
8 252957 0.00 7.186279 2014-02-03 07:00:00.000 0.00000
9 252957 0.00 7.187185 2014-02-03 08:00:00.000 0.00000
当我输入 class(hourlyData$Period) 时,我得到 Character。
但是,当我尝试将此列转换为 hourlyData$Period = as.POSIXct(hourlyData$Period) 时,我得到以下输出:
每小时数据
Login Expo EquityUSD Period UnrealizedProfitUSD
1 252957 0.00 7.187185 2014-02-03 0.00000
2 252957 0.00 7.187772 2014-02-03 0.00000
3 252957 0.00 7.188198 2014-02-03 0.00000
4 252957 0.00 7.187825 2014-02-03 0.00000
5 252957 0.00 7.187079 2014-02-03 0.00000
6 252957 0.00 7.187079 2014-02-03 0.00000
7 252957 0.00 7.188731 2014-02-03 0.00000
8 252957 0.00 7.186279 2014-02-03 0.00000
9 252957 0.00 7.187185 2014-02-03 0.00000
小时和分钟已从“期间”列中删除。有谁知道为什么会发生这种情况,或者如何预防?
谢谢
迈克
【问题讨论】:
-
这可能在某种程度上是特定于操作系统的,以下命令对我来说会产生正确的结果(Mac OS X 上的 R 3.1.1):
as.POSIXct(c('2014-02-03 00:00:00.000', '2014-02-03 01:00:00.000', '2014-02-03 02:00:00.000'))。 -
我也得到了正确的结果,R 3.1.1,windows 7。
-
我发现确实有一个约会惹麻烦。 2014-03-31 03:00:00。出于某种未知原因,当我删除该特定日期时,转换工作。所以我认为你们是正确的,它应该可以工作,但也许我的数据有问题。感谢您的帮助!
-
你在土耳其是偶然的吗? timeanddate.com/time/dst/2014a.html请说明您的时区。
-
一般建议:在创建 POSIXt 对象时始终明确指定时区(通过使用
tz参数)。