4

私は新しい R ユーザーです。私は時系列の断面データセットを持っています.Rで時系列データを遅らせる方法を見つけましたが、分析で使用できるように時系列の断面変数を作成する方法を見つけていません.

4

2 に答える 2

4

横断的な時系列データの場合、パッケージplmは非常に便利です。データのパネル性を考慮したラグ機能があります。

library(plm)
data("Produc", package="plm")
dnow <- pdata.frame(Produc)
head(lag(dnow$pcap,1))
             ALABAMA-1970 ALABAMA-1971 ALABAMA-1972 ALABAMA-1973 ALABAMA-1974 
          NA     15032.67     15501.94     15972.41     16406.26     16762.67 

パッケージの問題の 1 つは、with (または within または transform) を使用すると、間違った答えが得られることです。

head(with(dnow, lag(pcap,1)))
15032.67 15501.94 15972.41 16406.26 16762.67 17316.26

ので注意してください。

于 2009-12-28T21:28:45.060 に答える
4

(およびパネルシリーズデータ)でlag()関数を使用する方法は次のとおりです。zoo

> library(plm)
> library(zoo)
> data("Produc")
> dnow <- pdata.frame(Produc)
> x.Date <- as.Date(paste(rownames(t(as.matrix(dnow$pcap))), "-01-01", sep=""))
> x <- zoo(t(as.matrix(dnow$pcap)), x.Date)
> x[1:3,1:3]
            ALABAMA  ARIZONA ARKANSAS
1970-01-01 15032.67 10148.42  7613.26
1971-01-01 15501.94 10560.54  7982.03
1972-01-01 15972.41 10977.53  8309.01

1 だけ進む:

> lag(x[1:3,1:3],1)
            ALABAMA  ARIZONA ARKANSAS
1970-01-01 15501.94 10560.54  7982.03
1971-01-01 15972.41 10977.53  8309.01

後方に 1 遅れる:

> lag(x[1:3,1:3],k=-1)
            ALABAMA  ARIZONA ARKANSAS
1971-01-01 15032.67 10148.42  7613.26
1972-01-01 15501.94 10560.54  7982.03

Dirk が述べたように、さまざまな時系列パッケージでのラグの意味に注意してください。xtsこれを別の方法で処理することに注意してください。

> lag(as.xts(x[1:3,1:3]),k=1)
            ALABAMA  ARIZONA ARKANSAS
1970-01-01       NA       NA       NA
1971-01-01 15032.67 10148.42  7613.26
1972-01-01 15501.94 10560.54  7982.03
于 2009-12-28T20:52:38.143 に答える