建立模型时,使用短公式调用多个变量。

34

我正在尝试使用 lm(...) 构建回归模型。我的数据集具有许多特征(>50)。我不想编写这样的代码:

lm(output ~ feature1 + feature2 + feature3 + ... + feature70)

我想知道写这段代码的简写符号是什么?


搜索“[r]公式多变量”的第一个结果回答了你的问题。 - Joshua Ulrich
1
参见:https://dev59.com/am445IYBdhLWcg3wRoLH - landroni
2个回答

60

您可以像 formula 的帮助页面中所述使用点号.。点号.代表“除了公式中用到的其他所有列”。

lm(output ~ ., data = myData)

或者,可以使用paste手动构造公式。以下示例来自as.formula()帮助页面:

xnam <- paste("x", 1:25, sep="")
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+"))))
你可以将这个对象插入回归函数中:lm(fmla, data = myData)

6

也可以尝试以下方法:

lm(output ~ myData[,2:71], data=myData)

假设输出是第一列,feature1:feature70是接下来的70列特征。
或者:
features <- paste("feature",1:70, sep="")
lm(output ~ myData[,features], data=myData)

这种方法可能更聪明,因为列在数据中的位置不重要。

但是,如果删除了带有NA值的行,则可能会引起问题...


1
使用data.table对我来说不起作用。 - Allen Wang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接