r - 将一个数据框与另一个包含增长率的数据框相乘,但将其复合

标签 r matrix dplyr

我有两个数据框 - 第一个包含 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/

相关文章:

r - 在 R 中使用 Leaflet 时如何在 addCircleMarkers() 中指定半径单位

r - 在 R 中查找行名称

python - numpy csr 矩阵 "mean"函数是否对所有矩阵求平均值?我怎样才能删除某个值?

r - grouped_df_impl 中的错误(数据,取消命名(vars),删除): Column is unknown

根据区域数量 reshape 我的数据

RODBC:积极转换字符和数字(有/无原样)

r - 如何在R中矩阵特定行的元素上放置方括号

python - Numpy.copy 无法按预期进行随机采样

r - 根据每行中列的相对顺序对矩阵中的行进行排序

r - 如何折叠频率表的行以将其计数添加到新列中?