有没有一种快速的方法可以添加每个输入特征的方块(或其他函数),而无需在R中明确指定它们? 我试图做一个线性回归,我想考虑所有的输入特征以及它们的平方。对于一个简单的线性回归,我可以 lm(y~.,data=MyData)

有没有一种快速的方法可以添加每个输入特征的方块(或其他函数),而无需在R中明确指定它们? 我试图做一个线性回归,我想考虑所有的输入特征以及它们的平方。对于一个简单的线性回归,我可以 lm(y~.,data=MyData),r,R,对于包含少量变量的数据集,我可以 lm(y~poly(x1,2)+poly(x2,2), data=myData) 然而,如果我有很多输入特性,我如何能简洁地做到这一点,而不显式地列出每个特性?我尝试了以下操作,但导致语法错误 lm(y~poly(.,2), data=myData) 您可以通过构造适当的字符串来创建公式: formula_string = paste(sprintf('y ~ poly(1,%d)', 1:2), collapse = " + ") formula_stri

对于包含少量变量的数据集,我可以

lm(y~poly(x1,2)+poly(x2,2), data=myData)
然而,如果我有很多输入特性,我如何能简洁地做到这一点,而不显式地列出每个特性?我尝试了以下操作,但导致语法错误

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

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

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.formula
,如果需要,
lm
会将字符串转换为公式。

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

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.formula
,因为如果需要,
lm
会将字符串转换为公式