如何用“+”分隔特定的列表项并添加到公式中?

How to separate specific list items with "+" and add to formula?

我正在尝试使用以下格式的数据框列名生成公式:

d ~ x1 + x2 + x3 + x4

来自以下示例数据集:

a = c(1,2,3)
b = c(2,4,6)
c = c(1,3,5)
d = c(9,8,7)
x1 = c(1,2,3)
x2 = c(2,4,6)
x3 = c(1,3,5)
x4 = c(9,8,7)

df = data.frame(a,b,c,d,x1,x2,x3,x4)

至于我已经尝试过的:

我知道我可以使用以下方法只对我需要的列进行子集化

predictors = names(df[5:8])
response = names(df[4])

虽然,我尝试将这些纳入公式的努力失败了


我如何assemble将预测变量和响应变量转换为以下格式:

d ~ x1 + x2 + x3 + x4

我最终想把这个公式输入到一个randomForest函数中。

怎么样:

reformulate(predictors,response=response)

我们可以使用randomForest的默认方法(而不是公式方法)来避免整个问题:

randomForest(df[5:8], df[[4]])

或根据问题中定义的predictorsresponse

randomForest(df[predictors], df[[response]])

randomForest help file 部分所述,此处使用的默认方法具有比公式方法更好的性能的额外优势。