后,我已经包括了玩具例如重建我的错误:[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