如何根据先验信息在R数据框中包含缺失的观测值和时间维度?

时间:2013-10-30 08:28:13

标签: r data-manipulation

我有一个不平衡的面板数据,我想操纵它以包含一些先验信息。为此,我需要做一些由数据帧时间维度决定的数据操作。原始数据看起来像这样:

            FIRM_ID  YEAR  CAP_START   CAP_END
OBS1        1        2000  CAP_S_2000  CAP_E_2000
OBS2        1        2001  CAP_S_2001  CAP_E_2001
OBS3        1        2002  NA          NA

我知道行OBS3上的CAP_START将等于上一年的CAP_END。如何在数据中包含此先验信息?

1 个答案:

答案 0 :(得分:1)

如果您的数据已经排序(最好是character格式,factor可能会导致级别问题),那么您可以使用类似的内容

#add preceding row cap_end entry:
dt$prev_CAP_END <- c(NA,head(dt$CAP_END,-1))
#wherever missing, update with prevcap_end
dt[which(is.na(dt$CAP_START)),"CAP_START"] <- dt[which(is.na(dt$CAP_START)),"prev_CAP_END"]