提问人:nopeva 提问时间:12/30/2012 最后编辑:Communitynopeva 更新时间:12/30/2012 访问量:1420
以 lm() 函数的形式自动创建具有变量名称的动态字符串,以适应 R [duplicate] 中的线性模型
automatically create a dynamic string with variable names in the form of lm() function to fit linear models in R [duplicate]
问:
可能的重复:
具有动态变量数的公式
我正在拟合一个包含许多变量的线性模型,并希望按照 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)
答:
2赞
user1600826
12/30/2012
#1
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)
评论
0赞
nopeva
12/30/2012
我想第三行设置了除响应之外的所有名称,您能简要解释一下吗?
评论