Мне нужно изменить несколько неправильных лет в столбце 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.
Пожалуйста, помогите.Спасибо.