【问题标题】:Transform a vector to run to its max value without decreasing [duplicate]将向量转换为在不减少的情况下运行到最大值
【发布时间】:2017-03-26 19:42:48
【问题描述】:

我正在寻找一种巧妙的方法来将向量转换为自身的一个版本,该版本会一直运行到最大值而不会减少,并且一旦达到最大值就会停滞不前。

所以,对于像这样的输入:

x <- c(1,2,6,3,2,9,8,4)

我想要这样的输出:

y <- c(1,2,6,6,6,9,9,9)

我发现使用循环很容易做到这一点,但我正在尝试对 1000 个相当大的向量执行此操作,所以我真的更喜欢更有效的解决方案。提前谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以使用cummax 来做到这一点

    cummax(x)
    #[1] 1 2 6 6 6 9 9 9
    

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多