r data.table

Reemplazo condicional de los valores de columna con data.table



(1)

Si no quisieras cambiar el tipo de columna, harías:

dt[col2 == 1, col2 := 123]

Con el cambio de tipo, puedes hacer:

dt[, col2 := as.character(col2)][col2 == "1", col2 := "bigDog"]

Si no cambia el tipo primero, "bigDog" se convertirá en un entero, es decir, NA . También recibirás un montón de advertencias sobre eso, por supuesto.

Tenga en cuenta que, además de una sintaxis menos complicada, el uso de := tiene la ventaja de no hacer copias adicionales de los datos (como <- will) y en su lugar se modifica.

Tengo la siguiente tabla de datos:

dt <- data.table(col1 = rep("a",6), col2 = c(1,1,1,2,3,1))

Ahora quiero reemplazar todo el 1 en col2 con el valor "bigDog". Puedo hacerlo usando el espíritu data.frame:

dt$col2[dt$col2==1,] <- "bigDog"

Pero me pregunto si hay una forma diferente, más "data.table orientado" ?