我有一个向量,如下所示
a<- c(1,1,1,2,3,2,2,2,2,1,0,0,0,0,2,3,4,4,1,1)
在这里我们可以看到有很多重复的元素,即。它们是重复的。我想要一个代码,它可以替换除第一个元素之外的所有连续且重复的元素 0。我需要的结果是
a<- c(1,0,0,2,3,2,0,0,0,1,0,0,0,0,2,3,4,0,1,0)
我试过了
unique(a)
#which gives
[1] 1 2 3 0 4
我有一个向量,如下所示
a<- c(1,1,1,2,3,2,2,2,2,1,0,0,0,0,2,3,4,4,1,1)
在这里我们可以看到有很多重复的元素,即。它们是重复的。我想要一个代码,它可以替换除第一个元素之外的所有连续且重复的元素 0。我需要的结果是
a<- c(1,0,0,2,3,2,0,0,0,1,0,0,0,0,2,3,4,0,1,0)
我试过了
unique(a)
#which gives
[1] 1 2 3 0 4
replace(a, duplicated(c(0, cumsum(abs(diff(a))))), 0)
# [1] 1 0 0 2 3 2 0 0 0 1 0 0 0 0 2 3 4 0 1 0
您可以创建一个滞后系列并进行比较
> a
[1] 1 1 1 2 3 2 2 2 2 1 0 0 0 0 2 3 4 4 1 1
> ifelse(a == c(a[1]-1,a[(1:length(a)-1)]) , 0 , a)
[1] 1 0 0 2 3 2 0 0 0 1 0 0 0 0 2 3 4 0 1 0