是否有一种快速的方法来添加每个输入要素的方块(或其他函数)而不在R中明确指定它们?

时间:2013-11-24 06:55:59

标签: r

我正在尝试运行线性回归,我想考虑所有输入功能以及它们的正方形。对于简单的线性回归,我可以做到

lm(y~.,data=MyData)

对于具有少量变量的数据集,我可以

lm(y~poly(x1,2)+poly(x2,2), data=myData)

但是,如果我有很多输入功能,如何在没有明确列出每个功能的情况下简明扼要地执行此操作?我尝试了以下操作但导致语法错误。

lm(y~poly(.,2), data=myData)

1 个答案:

答案 0 :(得分:1)

您可以通过构造适当的字符串来创建公式:

formula_string = paste(sprintf('y ~ poly(1,%d)', 1:2), collapse = " + ")
formula_string
[1] "y ~ poly(1,1) + y ~ poly(1,2)"
as.formula(formula_string)
y ~ poly(1, 1) + y ~ poly(1, 2)

lm(as.formula(formula_string), data = myData)

请注意,不需要使用as.formulalm会根据需要将字符串转换为公式。