【发布时间】:2020-07-29 15:50:37
【问题描述】:
在使用 R 中的 plm 包估计随机效应时,我遇到了一个奇怪的问题。
这是我的部分数据的dput 的链接:https://pastebin.com/raw/mTdh26dg
我的代码是:
library(plm)
library(haven)
pmales <- pdata.frame(males_part, index = c("NR", "YEAR"))
random <- plm(WAGE ~ SCHOOL + EXPER + EXPER2 + BLACK + HISP + MAR + UNION + RUR + NE + NC + S + factor(YEAR),
data = pmales, model = "random")
我包含libary(haven) 的原因是我的原始数据集是一个.dta 文件。
当我运行这段代码时,我得到了这个错误:
Error in is.pbalanced.default(x) :
argument "y" is missing, with no default
奇怪的是,如果我从一个干净的 R 会话开始并且不加载 haven(以及从 dput 导入数据),我不会收到此错误。如果我从dput 导入但无论如何加载haven,我确实会收到错误消息。在估计 within 或 pooling 模型时,我也没有收到错误消息(即使有避风港 loaded)。
这是我的sessionInfo():
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Linux Mint 19.3
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=nl_NL.UTF-8
[6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=nl_NL.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=nl_NL.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] haven_2.2.0 plm_2.2-3
loaded via a namespace (and not attached):
[1] Rcpp_1.0.4.6 rstudioapi_0.11 Formula_1.2-3 magrittr_1.5 hms_0.5.3 MASS_7.3-51.5 lattice_0.20-41 rlang_0.4.5
[9] bibtex_0.4.2.2 fansi_0.4.1 stringr_1.4.0 tools_3.6.3 grid_3.6.3 nlme_3.1-144 cli_2.0.2 ellipsis_0.3.0
[17] maxLik_1.3-8 miscTools_0.6-26 assertthat_0.2.1 lmtest_0.9-37 digest_0.6.25 lifecycle_0.2.0 tibble_3.0.0 crayon_1.3.4
[25] bdsmatrix_1.3-4 vctrs_0.2.4 Rdpack_0.11-1 gbRd_0.4-11 glue_1.4.0 sandwich_2.5-1 stringi_1.4.6 pillar_1.4.3
[33] compiler_3.6.3 forcats_0.5.0 pkgconfig_2.0.3 zoo_1.8-7
这是plm 或haven 中的错误吗?或者两者(或它们的依赖关系)的某种不兼容?
【问题讨论】:
-
这是 plm 包中的一个错误,已在 2.4-4 版本中修复。不过,根本原因与此处分析的内容略有不同。