0

我有一个不平衡的面板数据,我想对其进行操作,以便在其中包含一些先验信息。为此,我需要根据数据帧时间维度进行一些数据操作。原始数据看起来有点像这样:

            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。如何在我的数据中包含此先验信息?

4

1 回答 1

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"]
于 2013-10-30T09:03:03.277 回答