che*_*gcj 5 join r date posixct data.table
在以下示例中,有人可以向我解释为什么2015-03-31的日期更改为1034-04-03?
dt1 = data.table(id = c(1,2), date = as.POSIXct("2015-03-31 BST"), key = "id")
dt1
# id date
# 1: 1 2015-03-31
# 2: 2 2015-03-31
dt2 = data.table(id = c(1,2), date = as.Date(NA), key = "id")
dt2
# id date
# 1: 1 <NA>
# 2: 2 <NA>
dt2[dt1, date := i.date]
dt2
# id date
# 1: 1 1034-04-03
# 2: 2 1034-04-03
Run Code Online (Sandbox Code Playgroud)
我的目的是让date来自dt1于dt2在Date格式,而不是POSIXct由id(不同id会有不同date).我该怎么办?
以下是我想要的:
dt2
# id date
# 1: 1 2015-03-31
# 2: 2 2015-03-31
Run Code Online (Sandbox Code Playgroud)
编辑:
我尝试过以下方法:
dt2[dt1, date := as.Date(i.date)]
dt2
# id date
# 1: 1 2015-03-30
# 2: 2 2015-03-30
Run Code Online (Sandbox Code Playgroud)
不幸的是,它给了我2015-03-30而不是2015-03-31 ... ??? 如何获得2015-03-31?
您可以使用
dt2[dt1, date:=as.Date(i.date)]
Run Code Online (Sandbox Code Playgroud)
您可能还想查看有关更改data.tables 中的数据类型的转换 data.table 中的列类的问题。
| 归档时间: |
|
| 查看次数: |
494 次 |
| 最近记录: |