将百分比变化(时间序列)应用于单个数字以创建新的时间序列?
Applying percentage change (a time-series) to a single number to create a new time-series?
我是 R 的新手。我有一个时间序列 (YOY.relative.change),其中包含碳排放量增加的百分比。我想将 YOY.relative.change 应用于单个起始数字 (X) 以创建新的时间序列。为此,我需要将 (X * (1 + YOY.relative.change[1]) 的乘积乘以 (1 + YOY.relative.change[2]) 等等。
YOY.relative.change
[1] 0.000000000 0.012931034 0.012765957 0.012605042 0.012448133
[6] 0.012295082 0.012145749 0.008000000 0.007936508 0.007874016
[11] 0.007812500 0.007751938
starting.number = 2000
expected.output
[1] 2000 2025.58 2051.5 etc.
这可能会让您入门:
apply.changes <- function(seed,changes){
n <- length(changes)
nums <- numeric(n+1)
nums[1] <- seed
for(i in 1:n){
nums[i+1] <- (1+changes[i])*nums[i]
}
nums
}
YOY.relative.change <- c(0.000000000, 0.012931034, 0.012765957, 0.012605042, 0.012448133, 0.012295082, 0.012145749, 0.008000000, 0.007936508, 0.007874016, 0.007812500, 0.007751938)
v <- apply.changes(2000,YOY.relative.change)
那么v
就是:
[1] 2000.000 2000.000 2025.862 2051.724 2077.586 2103.448 2129.310 2155.172
[9] 2172.414 2189.655 2206.897 2224.138 2241.379
我的代码包含原始种子值,但您可能不希望这样。在这种情况下,v[-1]
计算为与 YOY.relative.changes
.
长度相同的向量
我是 R 的新手。我有一个时间序列 (YOY.relative.change),其中包含碳排放量增加的百分比。我想将 YOY.relative.change 应用于单个起始数字 (X) 以创建新的时间序列。为此,我需要将 (X * (1 + YOY.relative.change[1]) 的乘积乘以 (1 + YOY.relative.change[2]) 等等。
YOY.relative.change
[1] 0.000000000 0.012931034 0.012765957 0.012605042 0.012448133
[6] 0.012295082 0.012145749 0.008000000 0.007936508 0.007874016
[11] 0.007812500 0.007751938
starting.number = 2000
expected.output
[1] 2000 2025.58 2051.5 etc.
这可能会让您入门:
apply.changes <- function(seed,changes){
n <- length(changes)
nums <- numeric(n+1)
nums[1] <- seed
for(i in 1:n){
nums[i+1] <- (1+changes[i])*nums[i]
}
nums
}
YOY.relative.change <- c(0.000000000, 0.012931034, 0.012765957, 0.012605042, 0.012448133, 0.012295082, 0.012145749, 0.008000000, 0.007936508, 0.007874016, 0.007812500, 0.007751938)
v <- apply.changes(2000,YOY.relative.change)
那么v
就是:
[1] 2000.000 2000.000 2025.862 2051.724 2077.586 2103.448 2129.310 2155.172
[9] 2172.414 2189.655 2206.897 2224.138 2241.379
我的代码包含原始种子值,但您可能不希望这样。在这种情况下,v[-1]
计算为与 YOY.relative.changes
.