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" ?