Verwenden Sie grep, um Zeilen aus einer data.table zu unterordnen und den Zeileninhalt zu vergleichen

DT <- data.table(num=c("20031111","1112003","23423","2222004"),y=c("2003","2003","2003","2004"))

> DT
    num    y
1: 20031111 2003
2:  1112003 2003
3:    23423 2003
4:  2222004 2004

Ich möchte den Inhalt der beiden Zellen vergleichen und eine Aktion basierend auf dem Booleschen Wert ausführen. Wenn beispielsweise "num" mit dem Jahr übereinstimmt, erstellen Sie eine Spalte x, die diesen Wert enthält. Ich habe über eine auf grep basierende Teilmenge nachgedacht, und das funktioniert, aber ich überprüfe natürlich dasganz Spalte jedes Mal, die verschwenderisch scheint

DT[grep(y,num)] # works with a pattern>1 warning

Ich könnte meinen Weg anwenden (), aber vielleicht gibt es einen Weg für data.table?

Vielen Dan

Antworten auf die Frage(4)

Ihre Antwort auf die Frage