【发布时间】:2017-05-03 09:50:03
【问题描述】:
我正在处理具有可变列数的多个文件,即数据集中的每个文件包含不同数量的列。
在每个文件中,第一列是输出变量。其余列是回归的输入变量。
所以,让我们假设我们有一个数据框D,其中包含以下列:
output abc abd dab cdb ...
即字段的名称也不固定。
我希望在R中使用lm来拟合一个线性回归模型,如下
model <- lm(output ~ abc + abd + dab + cdb ...., data = D)
鉴于我必须使用字段名称来确定公式表达式,而我事先并不知道。
我如何实现这一目标?
【问题讨论】:
-
试试
lm(df[,1] ~ df[,-1])。您可能必须先将数据框转换为矩阵,请参见例如?matrix或?model.matrix。只要第一列是因变量,这与名称和大小无关。 -
lm(df[,1] ~ df[,-1])如果ncol(df) > 2将不起作用 -
@AdamQuek 看看
lm(mtcars[,1] ~ as.matrix(mtcars[,-1])),其中ncol(mtcars)明显大于2。 -
是的。
as.matrix会起作用。 -
不知何故...它说变量 'df[,1] 的类型(列表)无效。怎么了?
标签: r dataframe regression