1
所以我剛收到一個數據集,其中一列數據幀是「循環」的。這一欄實際上是一個多年的循環(在我的情況下,1984-2007)。在另一列中,每個年份都有相應的美元金額(實際上是「資金水平」)。我的工作是爲這些資金水平創造一個滯後變量。但這裏有一個訣竅:每年的週期開始時,一個新的「變量」已經開始。因此,我所尋找的滯後變量不僅僅是整個資金列的倒退。相反,我需要爲數據的每個子週期創建資金滯後。更具體的,我的數據看起來有點像這樣:在R中滯後「循環」變量
X Y
1 7
2 8
3 9
1 4
2 6
3 5
1 2
2 4
3 3
,我需要它看起來像這樣:
X Y
1 NA
2 7
3 8
1 NA
2 4
3 6
1 NA
2 2
3 4
我怎麼會去這樣做呢?非常感謝你的幫助!
-JMC
謝謝 - 我不知道ave()函數。但是,我的時間序列週期問題並不總是始於同一年。有沒有辦法改變這個代碼來以不同的方式提示系列? – user3076619
+1 - OP,也許試試'cumsum(c(TRUE,diff(X)!= 1))'作爲'ave'中的分組變量。 – flodel
我想'cumsum(c(0,diff(x)<1))'可以處理開始時不規則的年份序列以及有空位(只要它們首先正確地「循環」 「。) –