【发布时间】:2021-02-24 19:23:53
【问题描述】:
我有关于级别变量的数据,看起来像这样:
library(data.table)
> MWE <- data.table(
+ Country=c(rep("France",10), rep("Germany",10)),
+ Variable="GDP",
+ Unit="M€ ",
+ year=as.character(seq(2010,2019)),
+ Value=rnorm(20,1,2))
> MWE
Country Variable Unit year Value
1: France GDP M€ 2010 0.2475945
2: France GDP M€ 2011 -0.1812476
3: France GDP M€ 2012 -1.0828806
4: France GDP M€ 2013 1.1369641
5: France GDP M€ 2014 1.8484673
6: France GDP M€ 2015 0.3989246
7: France GDP M€ 2016 2.9233374
8: France GDP M€ 2017 0.2926139
9: France GDP M€ 2018 -0.2150575
10: France GDP M€ 2019 -5.1984673
11: Germany GDP M€ 2010 -0.5920364
12: Germany GDP M€ 2011 2.3122961
13: Germany GDP M€ 2012 3.2274544
14: Germany GDP M€ 2013 2.7092847
15: Germany GDP M€ 2014 -3.0176760
16: Germany GDP M€ 2015 0.7516344
17: Germany GDP M€ 2016 1.1884167
18: Germany GDP M€ 2017 3.6750553
19: Germany GDP M€ 2018 2.1837976
20: Germany GDP M€ 2019 0.4049757
我也想把过去一年的演变作为每年的新线。
因此,我的最终数据表将有双倍的行数(此处为 40),最后一个是:
Country="France", "Variable"=GDP",Unit="%", year="2019", Value=Valueinlevel(2019)/ValueinLevel(2018)-1
我认为我可以通过 dcast 和一些复杂的重新安排来实现,但我认为可能有更好的方法
【问题讨论】:
-
你有两组年份;应该计算哪一个?
-
我在中途更换了 MWE,但没有正确操作。每一年都应该是独一无二的
标签: r datatable data-manipulation