【问题标题】:R: Are there any known issues when plyr/dplyr/data.table and plm packages used togetherR:当 plyr/dplyr/data.table 和 plm 包一起使用时是否有任何已知问题
【发布时间】:2016-05-19 18:14:25
【问题描述】:

我一直在基于许多其他面板数据集形成面板数据集。我一直对 data.table 甚至基本 R 函数 merge() 感到困惑,它们经常改变行的顺序。因此,经过反复试验,我使用了plyr 中的以下内容:

join(x, y, by=c("Firm", "Index"))

最后,当我通过最终面板数据集进行准备并使用attach() 函数和plm 包进行分析时,出现以下错误:

pdim.default(index[[1]], index[[2]]) 中的错误 当我使用

进一步调查时
options(error=recover)

我发现

stop(cat("duplicate couples (time-id)\n"))

请提出可能的问题以及如何解决?

【问题讨论】:

  • merge() 中尝试sort = FALSE
  • @Gregor 为什么不附加()?
  • 当附加列彼此(以及与数据框)不同步时,可能会导致难以调试的问题。 with() 是没有数据参数的单个命令的好选择。但是很多命令(比如plm!)都有一个data参数,所以你根本不需要attach或使用with
  • 查看answers here 了解有关attach 的坏处的更多详细信息。

标签: r plyr plm


【解决方案1】:

在您的数据中(可能是由于合并过程),您的数据中似乎有不止一次(或不止一个 NA)在时间索引中具有相同值的个体。 您可以查看您的数据或尝试table(index(your_pdataframe), useNA = "ifany") 找出哪个。

【讨论】:

  • 是的,我故意在 Index 中有重复值。提供的代码给出: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 。这是什么意思?
猜你喜欢
  • 2021-10-22
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多