R按变量更改列类

时间:2016-04-28 10:21:08

标签: r data.table

在R中,我有一个带有整数列df的data.table X。我想将此列从整数转换为字符。

使用df[, X:=as.character(X)]非常简单。

现在问题,我将列(X)的名称存储在如下变量中:

col_name <- 'X'

如何只知道变量,我如何访问该列(并将其转换为字符列)。

我尝试了所有无用的东西或NA的一列。哪种语法可以得到我想要的结果?

2 个答案:

答案 0 :(得分:3)

我们可以在.SDcols中指定它,并将列分配给character

df[, (col_name) := as.character(.SD[[1L]]), .SDcols = col_name]

如果有多列,请使用lapply

df[, (col_names) := lapply(.SD, as.character), .SDcols = col_names]

数据

df <- data.table(X = as.integer(1:5), Y = LETTERS[1:5])
col_name <- "X"

答案 1 :(得分:3)

library(data.table)
DT <- as.data.table(iris)
col_name <- "Petal.Length"

使用(评估:=的LHS并使用列表子集来选择列:

DT[, (col_name) := as.character(DT[[col_name]])]
class(DT[[col_name]])
#[1] "character"