我正在尝试使用lm(...)构建回归模型。我的数据集有很多功能(> 50)。我不想将我的代码编写为lm(output~feature1+feature2+feature3+...+feature70)
。我想知道编写这段代码的简写符号是什么。
答案 0 :(得分:53)
您可以按.
帮助页面中的说明使用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)
。
答案 1 :(得分:6)
还可以尝试以下方式:
lm(output ~ myData[,2:71], data=myData)
假设输出是第一列feature1:feature70是接下来的70列。
或者
features <- paste("feature",1:70, sep="")
lm(output ~ myData[,features], data=myData)
可能更聪明,因为列数据在数据中的位置无关紧要。
如果NA的行已被删除,可能会导致问题......