将POSIX日期字段转换为plm接受的时间索引的最佳方法是什么?

时间:2011-02-02 22:30:04

标签: r posix panel plm

我尝试使用plm软件包进行R中的第一次差异估计。正如标题中所述,我想知道如何将我的POSIX日期如“2002-10-01”转换为plm时间索引所理解的值。我想这意味着使用整数值?

这是我到目前为止所尝试的内容:

panel.fd <- plm(y~X,index=c("datefield","id"),model="fd",data=z)
# returns
Error in pdim.default(index[[1]], index[[2]]) :
# when I convert my datefield to a factor, I get the same error...
z$t_idx <-as.factor(z$datefield) 

2 个答案:

答案 0 :(得分:0)

您可以使用unclass将其转换为整数值。

> unclass(Sys.time())
[1] 1296686673

如果您将该数字除以86400,您将获得自1970-1-1以来的天数。

plm软件包除了索引之外没有使用时间变量,所以你只需要一个整数值。

编辑:

如何格式化然后转换:

> x <- as.POSIXlt("2011-02-02")
> x
[1] "2011-02-02"
> as.integer(format(x, "%Y%m%d"))
[1] 20110202

答案 1 :(得分:0)

概述的4.1节是plm包的一部分:

  

如上所述,当前版本   plm能够使用   常规data.frame没有任何   进一步改造,前提是   个人和时间指数在   前两列,如同所有   示例数据集,但工资。如果这   不是这样,一个索引可选   论证必须传递给   估算和测试功能。

在我看来,这意味着POSIXct日期应该可以正常工作。