【问题标题】:Undefined columns selected using panelvar package使用 panelvar 包选择的未定义列
【发布时间】:2024-01-15 08:20:01
【问题描述】:

有人在 R 中使用过面板变量吗?

目前我正在使用 R 的包 panelvar。我收到此错误:

Error in `[.data.frame`(data, , c(colnames(data)[panel_identifier], required_vars)) :
undefined columns selected

我目前的语法是:

model1<-pvargmm(
    dependent_vars = c("Change.."),
    lags = 2,
    exog_vars = c("Price"),
transformation = "fd",    
data = base1,    
panel_identifier = c("id", "t"),
steps = c("twostep"),    
system_instruments = FALSE,    
max_instr_dependent_vars = 99,    
min_instr_dependent_vars = 2L,
collapse = FALSE)

我不知道为什么我的 panel_identifier 不起作用,它与 panelvar 包给出的示例非常相似,但是,它不起作用,我想指定 base1 是 data.frame 格式。有任何想法吗?另外,我的数据结构如下:

 head(base1)
  id    t country    DDMMYY month month_text day Date_txt year    Price     Open
1  1 1296   China  1-4-2020     4        Apr   1   Apr 01 2020 12588.24 12614.82
2  1 1295   China 31-3-2020     3        Mar  31   Mar 31 2020 12614.82 12597.61

      High      Low Vol. Change..
1 12775.83 12570.32   NA  -0.0021
2 12737.28 12583.05   NA   0.0014

提前致谢!

【问题讨论】:

    标签: undefined panel


    【解决方案1】:

    检查包的文档和SSRN paper。对我来说,它有助于确保所有输入的格式都是相同的(您可以使用str(base1) 命令进行检查)。例如他们写道:

    library(panelvar)
    data("Dahlberg")
    ex1_dahlberg_data <-
    pvargmm(dependent_vars = .......
    

    当我看到它时,我明白了

     >str(Dahlberg)
     'data.frame':  2385 obs. of  5 variables:
         $ id          : Factor w/ 265 levels "114","115","120",..: 1 1 1 1 1 1 1 1 1 2 ...
         $ year        : Factor w/ 9 levels "1979","1980",..: 1 2 3 4 5 6 7 8 9 1 ...
         $ expenditures: num  0.023 0.0266 0.0273 0.0289 0.0226 ...
         $ revenues    : num  0.0182 0.0209 0.0211 0.0234 0.018 ...
         $ grants      : num  0.00544 0.00573 0.00566 0.00589 0.00559 ...
    

    例如,输入数据必须是 data.frame(在我的例子中,它有额外的类型规范,如 tibble 或 data.table)。我通过在其上投射 as.data.frame() 解决了它。

    【讨论】: