2011-02-02 18 views
1

我試着用plm包進行R中的一些差異估計。正如標題中所述,我不知道如何將POSIX日期(如「2002-10-01」)轉換爲由plm時間索引理解的值。我想這意味着使用整數值?將POSIX datefield轉換爲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) 
+0

`index`應該是一個日期向量。目前你正在提供一個角色矢量。 – 2011-02-03 01:15:19

回答

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 
+0

不適用於每月POSIXlt日期。 – 2011-02-02 23:03:28

0

的PLM包的概述THA那朵部分的4.1節指出:

如以上觀察到的, plm的當前版本 能夠與 常規數據幀一起工作而無需任何 進一步轉換,條件是 前兩列中的個人和時間索引都在 中,例如所有 示例數據集但工資。如果這個 不是這種情況,一個索引可選 參數將不得不傳遞到 的估計和測試功能。

我的閱讀意味着POSIXct日期應該可以正常工作。

+0

示例數據集所有體育年度日期...所有這些都是簡單的整數值..我的問題不適用。如果你能指出我有每月數據的例子 - 那很好。 – 2011-02-02 23:04:40

相關問題