Identify and replace duplicate from a column vector
I've got two columns which are as under:
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
Here we can see that there are lot of duplicate elements, ie. they are
repeated ones. I want a code which can replace all the elements which are
consecutive and duplicate by 0 except for the first element. The result
which i require is
a<- c(1,0,0,2,3,2,0,0,0,1,0,0,0,0,2,3,4,0,1,0)
I've tried what i've learnt from my earlier post
ifelse(data$a == c(data$a[1]-1,data$a[(1:length(data$a)-1)]) , 0 , data$a)
and also i've tried
data$a<- replace(data$a, duplicated(c(0, cumsum(abs(diff(data$a))))), 0)
but both the codes are not working in xts. Though both the above mentioned
code is working for normal vector.
No comments:
Post a Comment