Czy w poniższym przykładzie ktoś może mi wyjaśnić, dlaczego data 2015-03-31 została zmieniona na 1034-04-03?Łączenie kolumnę POSIXct z kolumną Data za pomocą data.table w R
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
Moim celem jest, aby date
z dt1
do dt2
w formacie Date
zamiast POSIXct
przez id
(inna id
miałoby inny date
). Jak to zrobić?
obserwuję to co chcę:
dt2
# id date
# 1: 1 2015-03-31
# 2: 2 2015-03-31
EDIT:
Próbowałem następujące:
dt2[dt1, date := as.Date(i.date)]
dt2
# id date
# 1: 1 2015-03-30
# 2: 2 2015-03-30
Niestety, to daje mi 2015- 03-30 zamiast 2015-03-31 ... ??? Jak zdobyć 2015-03-31?
Czy możesz podać dane próbki? – user227710
Twój kod prawdopodobnie powinien dać przynajmniej ostrzeżenie. Proszę [zgłoś zgłoszenie błędu] (https://github.com/Rdatatable/data.table/issues). – Roland
Chengcj, @Roland, wypełniony [# 1200] (https://github.com/Rdatatable/data.table/issues/1200). – Arun