我尝试使用变量 target
引用公式中的列名称,该变量由粘贴的字符串组成。
target = paste0("C","_inf")
model.matrix(target~., model.df)
这会导致错误
Error in model.frame.default(object, data, xlev = xlev) :
variable lengths differ
但是,像 model.matrix(C_inf~., model.df)
中那样直接引用列的名称不会产生此类错误,并且会产生完美的模型矩阵。
我猜这是由 target
的类型为 chr
引起的,但我似乎无法弄清楚如何指定将其用作列名的占位符。有人可以告诉我哪里出了问题以及如何解决它吗?
非常感谢!
最佳答案
我们可以在paste
或reformulate
中创建公式
model.matrix(reformulate(".", response = target), model.df)
或者使用粘贴
model.matrix(as.formula(paste0(target, "~.")), model.df)
或者可以使用胶水
model.matrix(glue::glue("{target}~ ."), model.df)
关于在 R 中使用字符串变量引用公式中的列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67441645/