有没有一种快速的方法可以添加每个输入特征的方块(或其他函数),而无需在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
会将字符串转换为公式