在R中,我有一个带有整数列df
的data.table X
。我想将此列从整数转换为字符。
使用df[, X:=as.character(X)]
非常简单。
现在问题,我将列(X
)的名称存储在如下变量中:
col_name <- 'X'
。
如何只知道变量,我如何访问该列(并将其转换为字符列)。
我尝试了所有无用的东西或NA的一列。哪种语法可以得到我想要的结果?
答案 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"