首页 > 解决方案 > 计算每家公司每年名义变化的问题

问题描述

我想计算每个公司(isin)从 t 年到 t+1 年的规模和 roa 变化。

我尝试以下代码,但所有观察结果都为 0:

df3 <- totassetprice %>%
  group_by(isin) %>%
  arrange((year), .by_group = TRUE) %>%
  summarise(year,deltsize = (size - lag(size)), deltroa=(roa-lag(roa)))


          isin year     size        roa
1 JP3304200003 2009 9.617923 0.12711757
2 JP3304200003 2010 9.649482 0.08083183
3 JP3304200003 2011 9.811475 0.14535881
4 JP3304200003 2012 9.952205 0.14929742
5 JP3304200003 2013 9.944886 0.11951592
6 JP3304200003 2014 9.833800 0.12361346

输出

  isin          year deltsize deltroa
  <chr>        <int>    <dbl>   <dbl>
1 DE0005008007  2009        0       0
2 DE0005008007  2010        0       0
3 DE0005008007  2011        0       0
4 DE0005008007  2012        0       0
5 DE0005008007  2013        0       0
6 DE0005008007  2014        0       0

标签: r

解决方案


您可以使用lag获取与上一行相比的差异:

library(tidyverse)

data <- tribble(
  ~id, ~isin, ~year, ~size, ~roa,
  1, "JP3304200003", 2009, 9.617923, 0.12711757,
  2, "JP3304200003", 2010, 9.649482, 0.08083183,
  3, "JP3304200003", 2011, 9.811475, 0.14535881,
  4, "JP3304200003", 2012, 9.952205, 0.14929742,
  5, "JP3304200003", 2013, 9.944886, 0.11951592,
  6, "JP3304200003", 2014, 9.833800, 0.12361346,
)
data
#> # A tibble: 6 x 5
#>      id isin          year  size    roa
#>   <dbl> <chr>        <dbl> <dbl>  <dbl>
#> 1     1 JP3304200003  2009  9.62 0.127 
#> 2     2 JP3304200003  2010  9.65 0.0808
#> 3     3 JP3304200003  2011  9.81 0.145 
#> 4     4 JP3304200003  2012  9.95 0.149 
#> 5     5 JP3304200003  2013  9.94 0.120 
#> 6     6 JP3304200003  2014  9.83 0.124

data %>%
  group_by(isin) %>%
  arrange(year) %>%
  mutate(
    delta_size = size - lag(size),
    delta_roa = roa - lag(roa)
  )
#> # A tibble: 6 x 7
#> # Groups:   isin [1]
#>      id isin          year  size    roa delta_size delta_roa
#>   <dbl> <chr>        <dbl> <dbl>  <dbl>      <dbl>     <dbl>
#> 1     1 JP3304200003  2009  9.62 0.127    NA        NA      
#> 2     2 JP3304200003  2010  9.65 0.0808    0.0316   -0.0463 
#> 3     3 JP3304200003  2011  9.81 0.145     0.162     0.0645 
#> 4     4 JP3304200003  2012  9.95 0.149     0.141     0.00394
#> 5     5 JP3304200003  2013  9.94 0.120    -0.00732  -0.0298 
#> 6     6 JP3304200003  2014  9.83 0.124    -0.111     0.00410

reprex 包于 2021-11-09 创建(v2.0.1)


推荐阅读