r - as.POSIXct 的时区不起作用
问题描述
我有一个带日期的数据框,我正在尝试将其转换为 POSIXct 对象,但我无法指定时区。知道为什么会这样吗?
> str(dates)
'data.frame': 3171 obs. of 3 variables:
$ Date : Date, format: "2013-05-14" "2013-08-15" "2014-05-30" "2014-09-29" ...
$ BB_Ticker: Factor w/ 1252 levels "A US Equity",..: 1 2 2 2 2 2 2 2 2 2 ...
$ 1Y : POSIXct, format: "2013-05-13 20:00:00" "2013-08-14 20:00:00" "2014-05-29 20:00:00" "2014-09-28 20:00:00" ..
我尝试指定"America/New_York"
以及,"EST5EDT"
但它没有效果 -
> head(as.POSIXct(dates$Date, tz = "GMT"), 3)
[1] "2013-05-13 20:00:00 EDT" "2013-08-14 20:00:00 EDT" "2014-05-29 20:00:00 EDT"
> head(as.POSIXct(dates$Date, tz = "America/New_York"), 3)
[1] "2013-05-13 20:00:00 EDT" "2013-08-14 20:00:00 EDT" "2014-05-29 20:00:00 EDT"
> head(as.POSIXct(dates$Date, tz = "EST5EDT"), 3)
[1] "2013-05-13 20:00:00 EDT" "2013-08-14 20:00:00 EDT" "2014-05-29 20:00:00 EDT"
解决方案
如果您查看源代码,as.POSIXct.Date
则会看到以下内容:
function (x, ...)
.POSIXct(unclass(x) * 86400)
<bytecode: 0x00000000120de6e0>
<environment: namespace:base>
请注意没有时区如何传递到.POSIXct
.
您可以改用字符方法:
as.POSIXct(as.character(as.Date("2013-05-14")), tz = "GMT")
[1] "2013-05-14 GMT"
推荐阅读
- c# - 具有公共值的 XML SelectNodes,迭代
- mips - Mips sll 奇怪的行为
- asp.net - 在 Asp.net 中插入会话的问题
- c++ - 了解 Qt 命名空间前向声明
- css - 如何仅模糊背景css
- google-chrome - Chrome DevTools 协议:如何获取网页元素并执行点击事件
- python - 如何使用我们选择的输入来测试逻辑回归模型?
- django - 在 django 中聚合十进制字段
- python - 调用win32 API CreateProcessWithLogonW时如何创建用户文件夹
- python - python循环打印太高/太低/否则