I wish to change the class of selected variables in a data table, using a vectorized operation. I am new to the data.table syntax, and am trying to learn as much as possible. I
You could avoid the overhead of the construction of .SD
within j
by using set
for(j in index) set(data, j =j ,value = as.character(data[[j]]))
You just need to use .SDcols
with your index vector (I learnt that today!), but that will just return a data table with the reclassed columns. @dickoa 's answer is what you are looking for.
data <- data[, lapply(.SD, as.character) , .SDcols = index ]
sapply(data , class)
id height weight
"character" "character" "character"
I think that @SimonO101 did most of the Job
data[, names(data)[index] := lapply(.SD, as.character) , .SDcols = index ]
You can just use the :=
magic