R中向量的相邻相同元素
在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)
(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)$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(ll
与原始向量的长度不一样。并且您的其他注释仅适用于1
完全不重复的向量。将向量的第一个元素更改为5或其他什么,答案将不同,因为x[x==1]
不是通用的,因为我想要效率。我要补充的是,我从“accelerometry”中找到了rle2
函数,它似乎比处理数字数据快一点。太好了!谢谢。难道不是ifelse吗(ll
与原始向量的长度不同。您的其他注释仅适用于1
完全不重复的向量。将向量的第一个元素更改为5或其他值,答案将不同,因为x[x==1]
不是通用的,因为我想要效率。我要补充的是,我从“accelerometry”中找到了rle2
函数,它似乎比处理数字数据快一点。太好了!谢谢。难道不是ifelse吗(ll
与原始向量的长度不同。您的其他注释仅适用于1
完全不重复的向量。将向量的第一个元素更改为5或其他值,答案将不同,因为x[x==1]
不是通用的,因为我想要效率。我要补充的是,我从“accelerometry”中找到了rle2
函数,它似乎比处理数字数据快一点。太好了!谢谢。难道不是ifelse吗(ll
与原始向量的长度不同。您的其他注释仅适用于1
完全不重复的向量。将向量的第一个元素更改为5或其他值,答案将不同,因为x[x==1]
不是通用的,因为我想要效率,我要补充的是,我从“accelerometry”中找到了rle2
功能这似乎比处理数字数据快一点。感谢您的回答,但这不是正确的结果向量。感谢您的回答,但这不是正确的结果向量。感谢您的回答,但这不是正确的结果向量。感谢您的回答,但这不是正确的结果向量。