Java计算2个变量和_通过两个变量计算增长率和分组

我想计算对数增长率,我正在努力使它在data.table的 by -clause中使用两个变量 . 我有一个data.table,涵盖了随着时间的推移 生产环境 ,我想计算随时间和每组的对数增长率 .

library(zoo)

library(data.table)

library(ggplot2)

library(dplyr)

DT

2015, 2015.25, 2015.25, 2015.25, 2015.25, 2015.25, 2015.5, 2015.5,

2015.5, 2015.5, 2015.5, 2015.75, 2015.75, 2015.75, 2015.75, 2015.75,

2016, 2016, 2016, 2016, 2016, 2016.25, 2016.25, 2016.25, 2016.25,

2016.25), class = "yearqtr")

,Group = structure(c(2L, 1L, 4L,

3L, NA, 2L, 1L, 4L, 3L, NA, 2L, 1L, 4L, 3L, NA, 2L, 1L, 4L, 3L, NA, 2L, 1L, 4L, 3L, NA, 2L, 1L, 4L, 3L, NA), .Label = c("1", "2", "3", "4"), class = "factor")

, Conventional.Prod = c(11.78, 7.31, 7.34, 9.44, 28.72, 11.32, 5.27, 7.47, 8.08, 27.14, 11.49,

4.65, 7.63, 7.07, 25.93, 10.69, 3.68, 6.96, 6.72, 18.31, 9.28,

3.69, 6.86, 6.34, 19.14, 9.25, 3.69, 6.9, 6.16, 17.7)

, Unconventional.Prod = c(15.22, 10.69, 7.66, 15.56, 30.28, 15.68, 10.73, 7.53, 15.92, 29.86,

13.51, 10.35, 7.37, 15.93, 28.07, 13.31, 10.32, 7.04, 16.28,

25.69, 12.72, 9.31, 7.14, 16.66, 25.86, 12.75, 9.31, 7.1, 16.84, 24.3))

, .Names = c("Year.Quarter", "Group", "Conventional.Prod", "Unconventional.Prod"), row.names = c(NA, -30L), class = c("data.table",

"data.frame"))

DT[, .( Conventional.Prod

, d.log.Conventional.Prod = log(Conventional.Prod, base = exp(1)) - shift(log(Conventional.Prod, base = exp(1)), n = 1L , fill = NA, type = "lag")

, Log.Conventional.Prod = log(Conventional.Prod, base = exp(1))

, Lag.Log.Conventional.Prod = shift(log(Conventional.Prod, base = exp(1)), n = 1L , fill = NA, type = "lag")

), by = list(Group, Year.Quarter)]

我不知道,为什么它没有被Group变量正确分组和排序,以及为什么不可能计算 生产环境 的滞后值 . 我不认为因子变量存在问题,因为排序工作得很好 .

DT[order(Group, Year.Quarter)]

Year.Quarter Group Conventional.Prod Unconventional.Prod

1: 2015 Q1 1 7.31 10.69

2: 2015 Q2 1 5.27 10.73

3: 2015 Q3 1 4.65 10.35

4: 2015 Q4 1 3.68 10.32

5: 2016 Q1 1 3.69 9.31

6: 2016 Q2 1 3.69 9.31

7: 2015 Q1 2 11.78 15.22

8: 2015 Q2 2 11.32 15.68

9: 2015 Q3 2 11.49 13.51

10: 2015 Q4 2 10.69 13.31

[...]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值