考虑一个例子:
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,任何人都可以回答上面应该最有效的编码吗?