次のような2つの列があります。
a<- c(1,1,1,2,3,2,2,2,2,1,0,0,0,0,2,3,4,4,1,1)
date<- Sys.Date()-20:1
data<- xts(a,date)
colnames(data)<- "a"
data
ここでは、多くの重複要素があることがわかります。それらは繰り返されるものです。最初の要素を除いて、連続して重複するすべての要素を 0 に置き換えることができるコードが必要です。私が必要とする結果は
a<- c(1,0,0,2,3,2,0,0,0,1,0,0,0,0,2,3,4,0,1,0)
以前の記事で学んだことを試してみました
ifelse(data$a == c(data$a[1]-1,data$a[(1:length(data$a)-1)]) , 0 , data$a)
また、私は試しました
data$a<- replace(data$a, duplicated(c(0, cumsum(abs(diff(data$a))))), 0)
しかし、両方のコードが xts で機能していません。上記のコードは両方とも法線ベクトルで機能していますが。