修改向量以仅包含升序元素

问题描述

我有一个要修改的向量,以便它只包含与前一个元素相同或大于前一个元素的元素。该向量表示一种现象,该现象只应增加或保持不变(即按天累积死亡人数),但报告错误会导致元素少于前一个元素。我想通过用以前的元素替换元素来纠正这个问题,直到向量满足上述条件。

原始数据:1 3 3 6 8 10 7 9 15 12

所需的修改数据:1 3 3 6 6 6 7 9 9 12

library(zoo)
raw <- c(1,3,6,8,10,7,9,15,12) 

replace.errors <- function(x){   
x %>% 
replace(diff(x) < 0,NA) %>%
na.locf(na.rm=FALSE)
}

replace.errors(raw)

# [1]  1  3  3  6  8  8  7  9  9 12

如果需要替换一行中的多个顺序元素(8 和 10),我的函数不起作用,因为它只是向前拉动仍然大于下一个元素的元素。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)