I'm trying to apply a function to a group of columns in a large data.table without referring to each one individually.
a <- data.table(
a=as.character(rnorm(5)),
b=as.character(rnorm(5)),
c=as.character(rnorm(5)),
d=as.character(rnorm(5))
)
b <- c('a','b','c','d')
with the MWE above, this:
a[,b=as.numeric(b),with=F]
works, but this:
a[,b[2:3]:=data.table(as.numeric(b[2:3])),with=F]
doesn't work. What is the correct way to apply the as.numeric
function to just columns 2 and 3 of a
without referring to them individually.
(In the actual data set there are tens of columns so it would be impractical)
,with=F]
allows j to be column-indices e.g.dt[, 2:3, with =F
. But applying a function to each is more complicated, as per @mnel's answer. – Clathrate