R data.table мультиколонка перекодировать / переопределить [дублировать]
На этот вопрос уже есть ответ здесь:
Самый быстрый способ заменить NA в большом data.table 8 ответовПусть DT будет data.table:
DT<-data.table(V1=sample(10),
V2=sample(10),
...
V9=sample(10),)
Есть ли лучший / более простой способ сделать многоколоночное перекодирование / переопределение следующим образом:
DT[V1==1 | V1==7,V1:=NA]
DT[V2==1 | V2==7,V2:=NA]
DT[V3==1 | V3==7,V3:=NA]
DT[V4==1 | V4==7,V4:=NA]
DT[V5==1 | V5==7,V5:=NA]
DT[V6==1 | V6==7,V6:=NA]
DT[V7==1 | V7==7,V7:=NA]
DT[V8==1 | V8==7,V8:=NA]
DT[V9==1 | V9==7,V9:=NA]
Имена переменных абсолютно произвольны и не обязательно имеют номера. Множество столбцов (Vx: Vx) и один шаблон перекодирования для всех (ИМЯ == 1 | ИМЯ == 7, ИМЯ: = что-то).
И далее, как многоколоночные подчиненные NA для чего-то еще. Например, в стиле data.frame:
data[,columns][is.na(data[,columns])] <- a_value