我有一个包含 70 个变量的数据集,我想对其进行多项式回归。如果列数是三/四,我可以手工编写这样的代码——
model <- lm(y ~ poly(var1,3) + poly(var2,3) + poly(var4,4)
如果我们有 70 个变量,我们将如何处理?我们应该手动输入所有变量的名称还是有更简单的方法?
最佳答案
如果所有变量都系统地命名,您可以粘贴公式:
form <- as.formula(paste("y~", paste0("poly(var", 1:10, ")", collapse="+")))
或(对于三阶多项式):
form <- as.formula(paste("y~", paste0("poly(var", 1:10, ", degree=3)", collapse="+")))
此外,如果您的数据集
y
中只有因变量 df
和感兴趣的协变量(具有非系统名称),则可以尝试ind.y <- grep("y", colnames(df))
form <- as.formula(paste("y~", paste0("poly(", colnames(df[, -ind.y]), ", degree=3)", collapse="+")))
关于r - 如何在R中建模多项式回归?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41470403/