我在R中有一个带有多个向量的时间序列对象.我想计算每个向量在每个时间点(保存t = 1,显然是NA)的周期百分比变化.
> data <- ts(data.frame(x1=c(1:10), x2=c(11:20), x3=c(21:30)), start = c(2010,3), frequency = 4)
> data
x1 x2 x3
2010 Q3 1 11 21
2010 Q4 2 12 22
2011 Q1 3 13 23
2011 Q2 4 14 24
2011 Q3 5 15 25
2011 Q4 6 16 26
2012 Q1 7 17 27
2012 Q2 8 18 28
2012 Q3 9 19 29
2012 Q4 10 20 30
Run Code Online (Sandbox Code Playgroud)
Dir*_*tel 54
试试这个:
R> data/stats::lag(data,-1) - 1
data.x1 data.x2 data.x3
2010 Q4 1.000000 0.0909091 0.0476190
2011 Q1 0.500000 0.0833333 0.0454545
2011 Q2 0.333333 0.0769231 0.0434783
2011 Q3 0.250000 0.0714286 0.0416667
2011 Q4 0.200000 0.0666667 0.0400000
2012 Q1 0.166667 0.0625000 0.0384615
2012 Q2 0.142857 0.0588235 0.0370370
2012 Q3 0.125000 0.0555556 0.0357143
2012 Q4 0.111111 0.0526316 0.0344828
R>
Run Code Online (Sandbox Code Playgroud)
Jil*_*ina 20
像这样的东西?
> diff(data)/data[-nrow(data),] * 100
x1 x2 x3
2010 Q4 100.00000 9.090909 4.761905
2011 Q1 50.00000 8.333333 4.545455
2011 Q2 33.33333 7.692308 4.347826
2011 Q3 25.00000 7.142857 4.166667
2011 Q4 20.00000 6.666667 4.000000
2012 Q1 16.66667 6.250000 3.846154
2012 Q2 14.28571 5.882353 3.703704
2012 Q3 12.50000 5.555556 3.571429
2012 Q4 11.11111 5.263158 3.448276
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43575 次 |
| 最近记录: |