将数据框中的任何列转换为数字值(is.numeric)

时间:2017-02-03 23:17:08

标签: r

我有一个大数据框,它是字符,整数和数字列的混合。从我所看到的,我想要数字的一些列并不总是数字。我可以手动转换每一个,但我想看看是否有办法检测其中包含数字的列,然后将其转换为数字。

1 个答案:

答案 0 :(得分:0)

如果您首先使用数字创建列名称的向量,则可以使用lapply。您可能需要手动创建此列名称向量,而不是基于使用is.numeric搜索列来创建它,因为您的问题是它们被错误分类。这是使用library(data.table)

cols <- c("var1", "var2", "var3", "var4")
DT[, (cols) := lapply(.SD, function(x) as.numeric(as.character(x))), .SDcols=cols]