R中向量的相邻相同元素

R中向量的相邻相同元素,r,subset,R,Subset,在R中是否有一种有效的方法来识别相邻的相同元素 假设我有这个向量: (Vx) 1 2 2 1 3 3 3 1 2 2 3 3 0 我想得到: 0 1 1 0 1 1 1 0 1 1 1 1 0 有什么干净的方法可以做到这一点吗?我试图避免循环或繁琐的函数,但到目前为止我没有任何运气 谢谢。vecvecvecvec试试rle和inverse.rle如下: vec <- c(1, 2, 2, 1, 3, 3, 3, 1, 2, 2, 3, 3, 0) l <- rle(vec)

在R中是否有一种有效的方法来识别相邻的相同元素

假设我有这个向量:

(Vx)
1 2 2 1 3 3 3 1 2 2 3 3 0
我想得到:

0 1 1 0 1 1 1 0 1 1 1 1 0 
有什么干净的方法可以做到这一点吗?我试图避免循环或繁琐的函数,但到目前为止我没有任何运气


谢谢。

vec
vec
vec
vec试试
rle
inverse.rle
如下:

vec <- c(1, 2, 2, 1, 3, 3, 3, 1, 2, 2, 3, 3, 0)

l <-  rle(vec)$lengths

rep(ifelse(l == 1, 0, 1), times = l)

# [1] 0 1 1 0 1 1 1 0 1 1 1 1 0
r <- rle(vx)
r$values <- (r$lengths > 1) + 0
inverse.rle(r)

试着像这样做
rle
reverse.rle

r <- rle(vx)
r$values <- (r$lengths > 1) + 0
inverse.rle(r)

试着像这样做
rle
reverse.rle

r <- rle(vx)
r$values <- (r$lengths > 1) + 0
inverse.rle(r)

试着像这样做
rle
reverse.rle

r <- rle(vx)
r$values <- (r$lengths > 1) + 0
inverse.rle(r)


x[x==1]=0;x[x!=0]=1
?是的,但这只适用于这种特殊情况
Vx
只是一个例子。
x[x==1]=0;x[x!=0]=1
?是的,但这只适用于这种特殊情况
Vx
只是一个例子。
x[x==1]=0;x[x!=0]=1
?是的,但这只适用于这种特殊情况
Vx
只是一个例子。
x[x==1]=0;x[x!=0]=1
?是的,但这只适用于这种特殊情况<代码>Vx
只是一个例子。太棒了!谢谢。不是
ifelse(l
l
与原始向量的长度不一样。并且您的其他注释仅适用于
1
完全不重复的向量。将向量的第一个元素更改为5或其他什么,答案将不同,因为
x[x==1]
不是通用的,因为我想要效率。我要补充的是,我从“accelerometry”中找到了
rle2
函数,它似乎比处理数字数据快一点。太好了!谢谢。难道不是
ifelse吗(l
l
与原始向量的长度不同。您的其他注释仅适用于
1
完全不重复的向量。将向量的第一个元素更改为5或其他值,答案将不同,因为
x[x==1]
不是通用的,因为我想要效率。我要补充的是,我从“accelerometry”中找到了
rle2
函数,它似乎比处理数字数据快一点。太好了!谢谢。难道不是
ifelse吗(l
l
与原始向量的长度不同。您的其他注释仅适用于
1
完全不重复的向量。将向量的第一个元素更改为5或其他值,答案将不同,因为
x[x==1]
不是通用的,因为我想要效率。我要补充的是,我从“accelerometry”中找到了
rle2
函数,它似乎比处理数字数据快一点。太好了!谢谢。难道不是
ifelse吗(l
l
与原始向量的长度不同。您的其他注释仅适用于
1
完全不重复的向量。将向量的第一个元素更改为5或其他值,答案将不同,因为
x[x==1]
不是通用的,因为我想要效率,我要补充的是,我从“accelerometry”中找到了
rle2
功能这似乎比处理数字数据快一点。感谢您的回答,但这不是正确的结果向量。感谢您的回答,但这不是正确的结果向量。感谢您的回答,但这不是正确的结果向量。感谢您的回答,但这不是正确的结果向量。