【发布时间】:2019-05-02 13:32:25
【问题描述】:
我目前正在处理一个由多个变量组成的数据集,这些变量是从 WRDS 中提取的。数据包含有关公司 (GVKEY)、资产回报率 (ROA) 和财政年度 (FYEAR) 的信息。我想计算每个公司每年的ROA变化。数据框由大约 4000 家公司组成,有几个公司年度观察结果。数据框(df_industry)如下所示:
GVKEY FYEAR ROA
100 2001 0.34
100 2002 0.33
100 2003 0.66
100 2004 0.49
100 2005 0.20
202 2001 0.34
202 2004 0.99
202 2005 0.12
202 2006 0.78
202 2007 0.23
202 2008 0.89
我尝试了几种使用 dplyr 包的解决方案,例如 summarise 和 mutate,但尽管按 GVKEY 分组,但它们似乎仍在继续计算。
df_industry %>% group_by(FYEAR) %>% mutate(roa_difference = ROA - lag(ROA))
我想添加一个列 (roa_difference) 来计算 ROA 与上一年的差异,如果没有上一年的数据来显示 NA。当前结果继续计算,不考虑公司,导致首次观察新公司时数据不正确。
【问题讨论】: