Изменить год в POSIXct в data.table - PullRequest
0 голосов
/ 04 июня 2018

Мне нужно изменить несколько неправильных лет в столбце POSIXct в data.table.

Вот простой data.table.

y = as.POSIXct(c("2018-08-12 16:30:00", "2107-08-14 15:13:00", "2017-08-14 11:12:13"))
x = as.data.table(y)

Я могу найти строки, которые делаютУ меня нет даты в 2017 году с этим

 x[year(y) != 2017,]

Теперь я хотел бы заменить неправильные значения года (потому что при проверке строк я вижу, что они опечатки) на «2017».

Я пробовал это

x[year(y) != 2017, year(y) == 2017]

и это

x[year(y) != 2017, year(y) := 2017]

Но ни сработало.
Мне удалось внести изменения с помощью gsub

new = x[, gsub("2107", "2017", y)]
new = x[, gsub("2018", "2017", y)]

Но выходные данные не являются таблицей данных, и даже если я использую as.data.table и as.POSIXct, чтобы убедиться, что новые даты имеют правильный формат, а выходные данные - это таблица данных, строки по-прежнемупо-видимому, не принял значение года 2017.

Пожалуйста, помогите.Спасибо.

...