我有两个数据框 - 第一个包含 180k 行的单列(即 1x180k),另一个包含 13 列的单行,包含 13 个增长率(即 13x1)
我正在尝试将这些数据帧相乘,以便我有一个数据帧来显示这些值随时间的增长。
我可以将它们相乘,但我不知道如何使其加类复合。
实际上,我想要的数据框将在第一列中具有现有值,第二列将具有第一列乘以第一增长率,第三列将具有第二列乘以第二增长率等。
注意 - 我的增长率以百分比表示(即 0.05 或 5%)
我有这个,但我不知道如何在其中反射(reflect)复利。
LandValuesForecast <- LandValues[,1] %*% (1+t(unlist(GrowthRates[1,])))
最佳答案
您可以循环遍历两个数据帧的列,将每个速率应用于上一次迭代中计算的值。
# example data
values <- data.frame(x0 = 1:10 * 100)
rates <- data.frame(r1 = .1, r2 = .01, r3 = .05)
for (i in seq(ncol(rates))) {
values[[paste0("x", i)]] <- values[, i] * (1 + rates[, i])
}
values
x0 x1 x2 x3
1 100 110 111.1 116.655
2 200 220 222.2 233.310
3 300 330 333.3 349.965
4 400 440 444.4 466.620
5 500 550 555.5 583.275
6 600 660 666.6 699.930
7 700 770 777.7 816.585
8 800 880 888.8 933.240
9 900 990 999.9 1049.895
10 1000 1100 1111.0 1166.550
关于r - 将一个数据框与另一个包含增长率的数据框相乘,但将其复合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74541877/