1

可能重复:
具有动态变量数的公式

我正在拟合具有许多变量的线性模型,并希望按照 R 中的 lm() 函数的形式自动生成一个动态字符串(“Y ~ X1 + ... + Xn”)。这个想法是将字符串插入到 lm() 公式中,因此不必手动写下所有名称。

另外我想设置响应变量的名称,以便它被识别并包含在字符串的第一位(“Y ~ ...”)

这可能吗?我正在玩“state.x77”数据集。假设我想使用“Life Exp”变量作为响应。

    state.x77                            
    str(state.x77)                       
    st = as.data.frame(state.x77)
n=ncol(st) 
4

1 回答 1

2
names(st) <- make.names(names(st))
y <- "Life.Exp"
x <- names(st)[!names(st) %in% y]
x
y
mymodel <- as.formula(paste(y, paste(x, collapse="+"), sep="~"))
lm(mymodel, data=st)
于 2012-12-30T10:59:16.340 回答