我的问题是这样的:我NA在计算强大的标准误差时应该得到一些值.
我正在尝试使用群集稳健的标准错误进行固定效果面板回归.为此,我跟随Arai(2011)的人.3遵循Stock/Watson(2006)(后来发表在Econometrica,有权访问的人).我想通过(M/(M-1)*(N-1)/(N-K) 对抗向下偏差来纠正自由度,因为我的簇数是有限的并且我有不平衡的数据.
类似的问题已张贴前[ 1,2 ]在计算器上和相关问题[ 3 ]的交叉验证.
Arai(以及第1个链接中的答案)使用以下代码进行功能(我在下面提供了我的数据以及一些进一步的评论):
gcenter <- function(df1,group) {
variables <- paste(
rep("C", ncol(df1)), colnames(df1), sep=".")
copydf <- df1
for (i in 1:ncol(df1)) {
copydf[,i] <- df1[,i] - ave(df1[,i], group,FUN=mean)}
colnames(copydf) <- variables
return(cbind(df1,copydf))}
# 1-way adjusting for clusters
clx <- function(fm, dfcw, cluster){
# R-codes (www.r-project.org) for computing
# clustered-standard errors. Mahmood Arai, Jan 26, 2008.
# The arguments of …Run Code Online (Sandbox Code Playgroud) 我正在尝试重塑/减少我的数据.到目前为止,我使用了一个for循环(非常慢),但从我看来,这应该是非常快的Plyr.
我有很多团体(公司,作为数据集中的一个因素),我想完全放弃每个公司,value在该公司的任何一个单元格中显示0条目.因此我创建了一个新的,data.frame但遗漏了所有value在某个时刻显示0的组.
该for循环:
Data Creation:
set.seed(1)
mydf <- data.frame(firmname = sample(LETTERS[1:5], 40, replace = TRUE),
value = rpois(40, 2))
-----------------------------
splitby = mydf$firmname
new.data <- data.frame()
for (i in 1:(length(unique(splitby)))) {
temp <- subset(mydf, splitby == as.character(paste(unique(splitby)[i])))
if (all(temp$value > 0) == "TRUE") {
new.data <- rbind(new.data, temp)
}
}
Delete all empty firm factors
new.data$splitby <- factor(new.data$splitby)
Run Code Online (Sandbox Code Playgroud)
有没有办法实现plyr包裹?该subset功能可以在该环境中使用吗?
编辑:为了复制问题,增加了BenBarnes建议的数据创建.本,非常感谢你.此外,我的代码被更改,以符合下面提供的答案.