R 将参数传递给 lda() 或 qda()

R Passing parameters to lda() or qda()

我正在尝试通过以矢量形式保存参数并将其传递给 lda() 进行建模来优化我的代码。以下方法适用于 lm,但不适用于 qda 或 lda。我收到的错误消息以黄色突出显示。

intvars <- c("x*y","y*t","z*w")
intfm <- paste("clickthrough", "~", paste(intvars, collapse = " + "))
lda_model_int <- lda(intfm, data = s_train)

Error in lda.default(intfm, data = s_train) : 'x' is not a matrix

您必须将字符串更改为 formula 或者您可以 reformulate

intvars <- c("x*y","y*t","z*w")
intfm <- reformulate(intvars,"clickthrough")
lda_model_int <- lda(intfm, data = s_train)

如果你想按照自己的方式去做,你就必须这样做

intvars <- c("x*y","y*t","z*w")
intfm <- as. formula(paste("clickthrough", "~", paste(intvars, collapse = " + ")))
lda_model_int <- lda(intfm, data = s_train)