国別の GDP 値と日付列を含むデータフレームがあります。次のコードは、2 つの国 (フランスとドイツ) と 6 年間 (2005 ~ 2010 年) のサンプル データセットを再現します。
df <- structure(list(geo = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L), .Label = c("DE", "FR"), class = "factor"),
date = structure(c(12784, 13149, 13514, 13879, 14245, 14610,
12784, 13149, 13514, 13879, 14245, 14610), class = "Date"),
GDP = c(2147975, 2249584.4, 2373993.1, 2382892.6, 2224501.8,
2371033.2, 1557584.8, 1621633.2, 1715655.4, 1713157.1, 1636336.3,
1707966.5)), .Names = c("geo", "date", "GDP"), row.names = c(NA,
-12L), class = "data.frame")
ここで、前年比のパーセント差を示す追加の列を計算したいと思います。私は次のことを試します:
library(quantmod)
# provides the Delt() function to calculate percent differences
df$dtGDP <- as.numeric(Delt(df$GDP))
2010 年の DE 値を使用して 2005 年の FR の値を計算しているため、これは誤りです。関数「因子レベルごと」を適用する方法はありますか?