我有一个数值向量,它包含权重数据的时间序列。我需要做的是通过识别连续权重之间不切实际的差异并从序列中的所有后续值中减去该变化来删除权重变化伪像。
例如,在这个系列中:c(5,4,6,8,8,8,12,10,100,101,101),我将9项和10项之间的增量权重(100 -10= 90)标识为工件,并通过从后续值中减去90进行更正,得到c(5,4,6,8,8,8,12,10,10,11,11)。
原则上,我的代码应该类似于:
cancel_artifacts <- function(weights, delta_max) {
for (i in 0:length(weights)) {
if (weights[i] - weights[i-1] > abs(delta_max)) {
weights[i:length(weights)] <- weights[i:length(weights)] - (weights[i] - weights[i-1])
}
}
显然,我的语法是一场灾难。有人能帮我设置一下吗?
https://stackoverflow.com/questions/44391500
复制相似问题