後,我已經包括了玩具例如重建我的錯誤:[R匹配數據幀之前和缺失值的迴歸和子集迴歸
data(cars)
cars$dist[cars$dist<5]<-NA
cars$fast<- (cars$speed>10)*1
fit<-lm(speed~dist,cars)
cl <- function(dat,fm, cluster){
require(sandwich, quietly = TRUE)
require(lmtest, quietly = TRUE)
M <- length(unique(cluster))
N <- length(cluster)
K <- fm$rank
dfc <- (M/(M-1))*((N-1)/(N-K))
uj <- apply(estfun(fm),2, function(x) tapply(x, cluster, sum));
vcovCL <- dfc*sandwich(fm, meat=crossprod(uj)/N)
result<-coeftest(fm, vcovCL)
return(result)}
cl(cars,fit,cars$fast)
Error in tapply(x, cluster, sum) : arguments must have same length
的問題是,原來的數據幀是比迴歸與使用的數據幀更大由於刪除了NA和子集迴歸。我需要計算可靠的標準錯誤,因此我必須使用函數cl計算SE,但是如何識別已刪除的NAs以及適當的子集,以便我可以識別正確的集羣以使用數據幀。
在此先感謝。
我可以問問你爲什麼要在參數列表,因爲'cl'功能不引用它擁有「逸」? –
你是對的,我應該刪除它。由於簇是一個可以與迴歸中使用的數據幀匹配的向量。 – mumpy