首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >POSIXct in R,bug?

POSIXct in R,bug?
EN

Stack Overflow用户
提问于 2019-12-10 18:29:21
回答 1查看 104关注 0票数 1

为什么这里会有不同?

代码语言:javascript
复制
db$Produktionsanfang[1]="2019-01-07 06:10:00"
代码语言:javascript
复制
> x = as.numeric(as.POSIXct(db$Produktionsanfang,origin="1970-01-01", tz ="CET"))
> x[1]
[1] 1546815600
> as.POSIXct(1546815600,origin="1970-01-01")
[1] "2019-01-07 CET"
代码语言:javascript
复制
> as.numeric(as.POSIXct(db$Produktionsanfang[1],origin="1970-01-01",tz="CET"))
[1] 1546837800
> as.POSIXct(1546837800,origin="1970-01-01")
[1] "2019-01-07 06:10:00 CET"
代码语言:javascript
复制
> dput(head(db["Produktionsanfang"], 2))
structure(list(Produktionsanfang = c("2019-01-07 06:10:00", "2019-01-08 06:39:00"
)), row.names = 1:2, class = "data.frame")

看起来data.frame操作会导致错误吗?第二个输出是正确的。

问题是x = as.numeric(as.POSIXct(db$Produktionsanfang,origin="1970-01-01", tz ="CET"))将“值”"2019-01-07 06:10:00“舍入为"2019-01-07",并将下一个值"2019-01-08 06:39:00”舍入为"2019-01-08“(以及df之外的所有值)。除了运行这段代码之外,这不是我想要的。

主题How can I keep midnight (00:00h) using strptime() in R?不是关于这个问题的。

有谁能解释一下吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-10 18:39:13

正如上面的@xilliam所指出的,在打印时,当时间戳对应于午夜时,as.POSIXct会丢弃HH:MM。小时和分钟仍然可以节省。

例如。

代码语言:javascript
复制
format(as.POSIXct(1546815600,origin="1970-01-01", tz='CET'), '%Y-%m-%d %M:%H')

[1] "2019-01-07 00:00"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59265126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档