【发布时间】:2011-04-25 03:06:54
【问题描述】:
我正在尝试使用lm(...) 构建回归模型。我的数据集有很多特征(>50)。我不想把我的代码写成:
lm(output ~ feature1 + feature2 + feature3 + ... + feature70)
我想知道编写此代码的简写符号是什么?
【问题讨论】:
-
搜索“[r] formula many variables”的第一个结果回答了你的问题。
我正在尝试使用lm(...) 构建回归模型。我的数据集有很多特征(>50)。我不想把我的代码写成:
lm(output ~ feature1 + feature2 + feature3 + ... + feature70)
我想知道编写此代码的简写符号是什么?
【问题讨论】:
您可以按照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)。
【讨论】:
也可以试试:
lm(output ~ myData[,2:71], data=myData)
假设输出是第一列 feature1:feature70 是接下来的 70 列。
或者
features <- paste("feature",1:70, sep="")
lm(output ~ myData[,features], data=myData)
可能更聪明,因为列在数据中的哪个位置并不重要。
如果为 NA 删除了行,可能会导致问题...
【讨论】: