非常简单的问题,但我无法找到答案。 假设我想将数据帧列类型从字符串转换为double,但是列名在编译时是未知的,所以我不能这样写:
train <- transform(train, columnName = as.double(columnName))
但如果我写这样的smth
varKnownAtRuntime <- "columnName"
train <- transform(train, varKnownAtRuntime = as.double(varKnownAtRuntime))
它只是追加了列&#34; varKnownAtRuntime&#34;到我的数据框,虽然我想改变火车类型$ columnName
答案 0 :(得分:1)
transform
是一种非标准评估快捷方式功能。如果要使用存储在变量中的列名,则需要使用标准评估函数,如[
。
varKnownAtRuntime <- "columnName"
train[, varKnownAtRuntime] = as.double(train[, varKnownAtRuntime])