4

我正在尝试创建模型以从包含预测变量 x1 到 x100 和其他 200 个变量的数据“D”中预测“y”。因为没有存储所有 X,因此我不能按列调用它们。

我不能使用ctree( y ~ , data = D) ,因为其他变量,有没有办法可以参考它们 x1:100 ?在模型中?

而不是编写很长的代码

ctree( y = x1 + x2 + x..... x100) 

一些建议将不胜感激。

4

3 回答 3

8

还有两个。我认为最简单的方法是对数据进行子集化:

ctree(y ~ ., data = D[, c("y", paste0("x", 1:100))]

或者更实用的方法来构建动态公式:

ctree(reformulate(paste0("x", 1:100), "y"), data = D)
于 2013-06-27T18:58:03.443 回答
4

将您的公式构造为文本字符串,并使用as.formula.

vars <- names(D)[1:100] # or wherever your desired predictors are
fm <- paste("y ~", paste(vars, collapse="+"))
fm <- as.formula(fm)

ctree(fm, data=D, ...)
于 2013-06-27T18:27:24.023 回答
2

你可以使用这个:

fml = as.formula(paste("y", paste0("x", 1:100, collapse=" + "), sep=" ~ "))
ctree(fmla)
于 2013-06-27T18:29:19.583 回答