Had you not wanted to change the type of the column, you'd do:
dt[col2 == 1, col2 := 123]
With the type change, you can do:
dt[, col2 := as.character(col2)][col2 == "1", col2 := "bigDog"]
If you don't change the type first, "bigDog" will get coerced to integer, i.e. NA
. You'll also get a bunch of warnings about that of course.
Note that besides less cumbersome syntax, using :=
has the advantage of not making extra copies of data (as <-
will) and instead modifies in place.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…