为什么这里会有不同?
db$Produktionsanfang[1]="2019-01-07 06:10:00"> 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"> 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"> 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?不是关于这个问题的。
有谁能解释一下吗?谢谢
发布于 2019-12-10 18:39:13
正如上面的@xilliam所指出的,在打印时,当时间戳对应于午夜时,as.POSIXct会丢弃HH:MM。小时和分钟仍然可以节省。
例如。
format(as.POSIXct(1546815600,origin="1970-01-01", tz='CET'), '%Y-%m-%d %M:%H')
[1] "2019-01-07 00:00"https://stackoverflow.com/questions/59265126
复制相似问题