У меня data.table
со многими столбцами. Есть 4 столбца, в которых я хочу заменить NA
на 0.
У меня есть рабочее решение:
claimsMonthly[is.na(claim9month),claim9month := 0
][is.na(claim10month),claim10month := 0
][is.na(claim11month),claim11month := 0
][is.na(claim12month),claim12month := 0]
Однако это довольно часто повторяется, и я хотел уменьшить это на используя l oop (не уверен, что это самая умная идея?):
for (i in 9:12){
claimsMonthly[is.na(paste0("claim", i, "month")), paste0("claim", i, "month") := 0]
}
Когда я запускаю этот l oop, ничего не происходит. Я предполагаю, что это связано с пактом, что paste0()
возвращает "claim12month"
, поэтому я получаю in.na("claim12month")
. Результат - FALSE
, несмотря на то, что в моих данных есть NA
. Полагаю, это как-то связано с кавычками?
Это не первый раз, когда у меня возникают проблемы с использованием paste0()
или запуском циклов с data.table
, поэтому я, должно быть, упускаю что-то важное.
Есть идеи, как это исправить?