v = c(1,0,1, 1,1,2, 1,2,2, 0,0,1)
我正在寻找一个能给我的功能:
c(F,F,F, T,T,F, F,F,T, F,T,F)
即如果 v[ix] 等于元素 v[ix-1],则在元素 ix 处为真。
顺便说一句,duplicated(v)
这不是我想要的,因为它与所有之前的行相比,并给了我:
[1] FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
v = c(1,0,1, 1,1,2, 1,2,2, 0,0,1)
我正在寻找一个能给我的功能:
c(F,F,F, T,T,F, F,F,T, F,T,F)
即如果 v[ix] 等于元素 v[ix-1],则在元素 ix 处为真。
顺便说一句,duplicated(v)
这不是我想要的,因为它与所有之前的行相比,并给了我:
[1] FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
v[-1] == v[-length(v)]
请注意,您的要求未定义v[1]
。
如果你只有数值,那么你也可以使用 diff 函数。如果 0 -> 相等,否则不相等
v = c(1,0,1, 1,1,2, 1,2,2, 0,0,1)
diff(v)
## [1] -1 1 0 0 1 -1 1 0 -2 0 1
!as.logical(diff(v))
## [1] FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE
像这样的东西应该这样做
v <- c(1,0,1, 1,1,2, 1,2,2, 0,0,1)
c(FALSE, v[-1] == v[-length(v)])
## [1] FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE
## [11] TRUE FALSE