2017-06-21 56 views
1

考慮這個例子:在lm()中傳遞向量到子集函數?

data <- data.frame(predictor = c(1,2,3,4,5,6), 
dv = c(5,3,5,6,6,1), 
id = c(1,2,3,1,2,3)) 

model <- lm(dv ~ predictor, subset = id, data = data) 
summary(model) 

我會明白這將意味着什麼傳,說,subset = id==1lm功能 - 這將僅使用具有匹配的ID號這些意見。但是,當我傳遞整個向量時,迴歸仍然運行並提供輸出。但是這是什麼意思?

回答

1

根據?lm我們看到

子集 - 任選的矢量指定觀察的一個子集是在裝配過程中使用 。

我們可以看到所使用的數據,如果我們運行lmobject$model

lm(dv ~ predictor, subset = 1, data = data)$model 
# dv predictor 
#1 5   1 
lm(dv ~ predictor, subset = 1:5, data = data)$model 
# dv predictor 
#1 5   1 
#2 3   2 
#3 5   3 
#4 6   4 
#5 6   5 
data$id 
#[1] 1 2 3 1 2 3 
lm(dv ~ predictor, subset = id, data = data)$model 
# dv predictor 
#1 5   1 
#2 3   2 
#3 5   3 
#1.1 5   1 
#2.1 3   2 
#3.1 5   3 

運行ID將重複剛纔的數據行。

讓我知道如果有什麼還不清楚。

+0

我不太明白什麼「運行ID將重複數據的行」是什麼意思?這是否意味着通過'id'有一個有意義的解釋,或者不是?這是什麼解釋? – histelheim

+0

是否有意義取決於數據。你只是重複你的觀察,特別是你的「數據」的第1到第3行 - 兩次。 –

+0

這是否回答你的問題? –