如何输入具有多种因素的线性模型

时间:2013-12-11 03:14:59

标签: r lm factors

这可能是一个基本问题,但我似乎无法在任何地方找到解决方案。如果我们有一个包含100个因子的数据框(称之为a1a100),那么如何在R中输入线性模型?我知道你可以写

lm(y~ a1*...*a100)

但如果名字很长,那么将它们全部写出来需要很长时间。有更快的方法吗?例如,通过引用列或类似的东西?有点相关,如果我得到一个包含括号的列名的数据表(例如y-max()),我怎么能输入?它作为R中的函数读取,但它不是。

如果已经提出这个问题,我道歉,但我似乎无法找到答案。

提前谢谢大家

--- ---编辑

感谢您的回答。但是,如果我确实需要更高阶的交互条款,我将如何实现这一目标?我需要写一个脚本还是有更聪明的方法?

2 个答案:

答案 0 :(得分:3)

如果你想包括所有其他y~.就足够了,但是如果你想要一些选定的变量,可以说,var 2到50,52-100。你可以做这样的事吗?

vars<-names(df)[c(2:50,52:101)] #or whatever..
covs<-paste(vars, collapse="+")
model<-paste("y~",covs)
df.lm<-lm(as.formula(model), data=df)

答案 1 :(得分:3)

下载时,通过阅读R附带的Introduction to R manual,可以了解其中的许多内容。

通常,具有多个级别的因子存储为单个变量:

treat <- c("control", "placebo", "placebo", "control", "drugA", "control", 
           "drugB", ...)

如果是这样,你可以使用lm(y~treat),R会为你处理。另一方面,如果您的数据框只有ya1a100 ,那么您可以使用lm(y~., my.data)和R我也会照顾你。