R data.table Mehrspaltige Neukodierung / Unterzuweisung [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Schneller Weg, um NAs in einer großen data.table zu ersetzen 8 answers

Lass DT eine Datentabelle sein:

DT<-data.table(V1=sample(10),
               V2=sample(10),
               ...
               V9=sample(10),)

Gibt es eine bessere / einfachere Methode, um mehrspaltige Neucodierungen / Unterzuweisungen wie folgt durchzuführen:

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]

Variable Namen sind völlig willkürlich und müssen nicht unbedingt Zahlen enthalten. Viele Spalten (Vx: Vx) und ein Rekodierungsmuster für alle (NAME == 1 | NAME == 7, NAME: = etwas).

Und weiter, wie man mehrspaltige Unterzuordnungen von NAs zu etwas anderem vornimmt. Zum Beispiel im data.frame-Stil:

data[,columns][is.na(data[,columns])] <- a_value

Antworten auf die Frage(2)

Ihre Antwort auf die Frage