簡體   English   中英

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

[英]Shortcut using lm() in R for formula

可以在lm()中使用公式的快捷方式

m <- matrix(rnorm(100), ncol=5)
lm(m[,1] ~ m[,2:5]

在這里它會和

lm(m[,1] ~ m[,2] + m[,3] + m[,4] + m[,5]

但是在變量不在同一級別的情況下(至少這是我現在的假設)這不起作用並且我得到錯誤:

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

數據(hm):

     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

是否還有一些捷徑可以避免編寫長公式?

試試lm(y ~., data) where . 表示“除y之外的data中的所有其他列。

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

您可以重新分配m以僅包含您作為預測變量的列

m <- m[ ,2:4]
lm(m1 ~ ., data=m)

當因變量位於第一列時,還有另一個快捷方式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM