我正在查看一些遗留的R代码,它将文本文件加载到R data.table中,然后将列类型从numeric类型转换为character。
以下是作者如何做到这一点:
library(data.table)
dtable = read.table("path/filename.txt",header=TRUE,sep="\t",check.names=FALSE)
for(i in c(1,2,3,8:18))
{
dtable[,i] <- as.character(as.vector(dtable[,i]))
}
对于data.table包,这看起来非常低效,因为我们使用的是for循环。
在没有for循环的情况下,以这种方式将数据类型转换为多列的最有效“data.table”方法是什么?
答案 0 :(得分:1)
您不需要循环。这是一个例子
data <- mtcars
str(data)
library(data.table)
id.col <- c(1,2,3,8:11)
setDT(data)[, (id.col) := lapply(.SD, as.character), .SDcols = id.col]
str(data)