基于r中前一行的Multiplicaton

时间:2015-11-12 21:11:53

标签: r

我有以下矩阵

            [,1]        [,2]       [,3]        [,4]
[1,]        2532        2532       2532        2532
[2,]    1.028605846 1.541478046 1.117421996 1.001032914
[3,]    0.794723319 1.070670946 1.180653716 0.966487035
[4,]    0.869901982 1.109662803 1.020646414 1.252548365
[5,]    0.957909572 1.063494032 1.285358611 1.665068867

我正在尝试循环这些值以获得

的最终矩阵
            [,1]        [,2]        [,3]        [,4]
[1,]        2532        2532        2532        2532
[2,]    2604.430001 3903.022412 2829.312493 2534.615339
[3,]    2069.801255 4178.8527   3340.438309 2449.672862
[4,]    1800.524213 4637.117402 3409.406382 3068.33374
[5,]    1724.739379 4931.546685 4382.309851 5108.986984

我知道我可以使用apply(data,2,prod)来获取最后一行的值,但不确定如何循环获取所有行的值。

由于

1 个答案:

答案 0 :(得分:1)

您可以通过列上的cumprodapply来查找所需内容。像

这样的东西
> mat <- matrix(1:6, nrow = 3)
> mat
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
> apply(mat, c(2), cumprod)
     [,1] [,2]
[1,]    1    4
[2,]    2   20
[3,]    6  120