如何对R中的data.table中的列子集应用操作

时间:2016-01-26 09:11:04

标签: r data.table

考虑一个例子:

library(data.table)
myDt <- data.table(a=rep(1:10), b=paste(1:10, "000",sep=","), c=paste(2:11, "000", sep=",") )
myDt

现在我想将字符列转换为数字。基本上我想删除逗号。我已经找到了办法。

charToNumCols <- c("b", "c")

numColsDt <- myDt[, lapply(.SD, function(x) as.numeric(gsub(",", "", x)) ), .SDcols=charToNumCols]

newDt <- data.table(myDt[, .SD, .SDcols=setdiff(names(myDt), charToNumCols)],     numColsDt)

现在我想要一个我不需要创建中间data.table的解决方案。最初为此我写了以下R代码

myDt <- myDt[, charToNumCols:=lapply(.SD, function(x) as.numeric(gsub(",", "", x)) ), .SDcols=charToNumCols] 

但这并不能完成所需的操作。

考虑到R?

中的data.table,任何人都可以回答上面应该最有效的编码吗?

0 个答案:

没有答案