在R中为公式使用lm()的快捷方式

在R中为公式使用lm()的快捷方式,r,matrix,formula,lm,R,Matrix,Formula,Lm,可以在lm() 但在变量不在同一水平的情况下(至少这是我目前的假设),这不起作用,我得到了错误: Error in model.frame.default(formula = hm[, 1] ~ hm[, 2:4], drop.unused.levels = TRUE) : invalid type (list) for variable 'hm[, 2:4]' 数据(hm): 还有什么捷径可以避免写长公式吗?试试lm(y~,data)其中的意思是“除了y之外,数据中的每隔一列” m &

可以在
lm()

但在变量不在同一水平的情况下(至少这是我目前的假设),这不起作用,我得到了错误:

Error in model.frame.default(formula = hm[, 1] ~ hm[, 2:4], drop.unused.levels = TRUE) : 
  invalid type (list) for variable 'hm[, 2:4]'
数据(hm):

还有什么捷径可以避免写长公式吗?

试试
lm(y~,data)
其中
的意思是“除了
y
之外,
数据中的每隔一列”

m <- matrix(rnorm(100), ncol =5)
m <- as.data.frame(m)
names(m) <- paste("m", 1:5, sep="")
lm(m1 ~., data=m)

对于因变量位于第一列的情况,还有另一个快捷方式:

data <- data.frame(y = rnorm(10), x1 = rnorm(10), x2 = rnorm(10))
lm(data)

谢谢。我已经添加了一个额外的(可能是显而易见的)选项,如果你想选择一个大而适当的子集。如果这回答了你的问题,请考虑把它标记为接受。我打算,但正在等待看别人想出什么。
     N cor.distance switches  time
1   50   0.04707842        2 0.003
2  100  -0.10769441        2 0.004
3  200  -0.01278359        2 0.004
4  300   0.04229509        5 0.008
5  500  -0.04490092        6 0.010
6 1000   0.01939561        4 0.007
m <- matrix(rnorm(100), ncol =5)
m <- as.data.frame(m)
names(m) <- paste("m", 1:5, sep="")
lm(m1 ~., data=m)
m <- m[ ,2:4]
lm(m1 ~ ., data=m)
data <- data.frame(y = rnorm(10), x1 = rnorm(10), x2 = rnorm(10))
lm(data)