R:在矩阵的连续列区域上应用函数

时间:2017-01-04 09:44:03

标签: r

您好我的问题有以下示例矩阵:

              Cats       Dogs     Frogs
2016-12-02  0.9994518  1.025039  1.002728
2016-12-08  1.0490699  1.013039  1.027556
2016-12-05  1.0204215  1.006204  1.059064

我的输出应该是Matrix,它为每个时间点的列提供Max。

              Cats       Dogs     Frogs
2016-12-02  0.9994518  1.025039  1.002728
2016-12-08  1.0490699  1.025039  1.027556
2016-12-05  1.0490699  1.025039  1.059064

列数和行数可以变化。我尝试了很多repeat Loopsapply(..)功能但没有任何作用。

我非常感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

我们可以在使用cummax循环列并指定apply

之后使用MARGIN = 2
apply(m1, 2, cummax)
#                Cats     Dogs    Frogs
#2016-12-02 0.9994518 1.025039 1.002728
#2016-12-08 1.0490699 1.025039 1.027556
#2016-12-05 1.0490699 1.025039 1.059064

数据

m1 <- structure(c(0.9994518, 1.0490699, 1.0204215, 1.025039, 1.013039, 
1.006204, 1.002728, 1.027556, 1.059064), .Dim = c(3L, 3L), .Dimnames = list(
c("2016-12-02", "2016-12-08", "2016-12-05"), c("Cats", "Dogs", 
"Frogs")))