使用 R

问题描述 投票:0回答:1

我有一个包含字段的面板数据 - ID、值、年份、季度。我需要通过将当前周期值除以起始周期值来计算每个 ID 的比率字段。因此,对于 ID = 1,比率将为 10/10、12/10 和 13/10。 ID = 2 时也是如此。

ID  Value   Year    Qtr Ratio
1   10  2010    1   1
1   12  2010    2   1.2
1   13  2010    3   1.3
2   15  2012    1   1
2   22  2012    2   1.466666667
2   10  2012    3   0.666666667
2   16  2012    4   1.066666667

Panel Data

我检查了一些建议,例如如何通过 ID 和年份查找 R 数据框中的先前值?使用 dplyr 按组计算比率 - 但我无法对此进行编码。请指导。谢谢。

r panel
1个回答
0
投票

您可以通过使用

mutate
并对第一个值进行索引来做到这一点:

df %>% arrange(Year, Qtr) %>%
  mutate(Ratio = Value/Value[1],
         .by = c(ID))

输出

  ID Value Year Qtr     Ratio
1  1    10 2010   1 1.0000000
2  1    12 2010   2 1.2000000
3  1    13 2010   3 1.3000000
4  2    15 2012   1 1.0000000
5  2    22 2012   2 1.4666667
6  2    10 2012   3 0.6666667
7  2    16 2012   4 1.0666667

数据

df <- data.frame(ID = c(1,1,1,2,2,2,2),
                 Value = c(10,12,13,15,22,10,16),
                 Year = c(rep(c(2010, 2012), each = 3), 2012),
                 Qtr = c(rep(1:3, 2), 4))
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.