R中的面板数据

时间:2012-03-21 04:02:43

标签: r panel time-series regression

我一直在与zoo合作,为我的时间序列数据利用滞后和差分。我没有使用由公司和日期组成的面板数据集。单独滞后每个公司然后合并结果变得非常麻烦。 R中是否有适用于面板数据的优质软件包?我目前知道plm。其他? plm有一个奇怪的问题,即lag顺序(即-1 vs +1)与zoots完全相反,因此我预见到了前方的麻烦。有人喜欢的任何套餐吗?

1 个答案:

答案 0 :(得分:1)

ddply包中的plyr函数, 通常使这种操作无痛 (但在大型数据集上可能会很慢)。

# Sample data
library(quantmod)
d <- NULL
for(s in c("^GSPC","^N225")) {
  tmp <- getSymbols(s,auto.assign=FALSE)
  tmp <- Ad(tmp)
  names(tmp) <- "price"
  tmp <- data.frame( date=index(tmp), id=s, price=coredata(tmp) )
  d[[s]] <- tmp
}
d <- do.call(rbind, d)
rownames(d) <- NULL

# Sample computations: lag the prices and compute the logarithmic returns
library(plyr)
d <- ddply(
  d, "id", 
  mutate,
  previous_price = lag(xts(price,date)),
  log_return = log(price / previous_price)
)