【发布时间】:2018-08-25 09:03:51
【问题描述】:
我想找到一种方法来确定向量的两个或多个连续元素是否相等。
例如,在向量x=c(1,1,1,2,3,1,3)中,第一个、第二个和第三个元素是相等的。
使用以下命令,我可以确定一个向量,比如y,是否包含两个或多个等于2 或3 的连续元素
all(rle(y)$lengths[which( rle(y)$values==2 | rle(y)$values==3 )]==1)
还有其他更快的方法吗?
编辑
假设我们有向量z=c(1,1,2,1,2,2,3,2,3,3)。
我想要一个包含三个元素的向量作为输出。第一个元素将引用值1,第二个元素引用2,第三个元素引用3。如果z 的两个或多个连续元素对于1,2,3 和0 的一个值相同,则输出向量的元素的值将等于1,否则。因此,向量z 的输出将是(1,1,1)。
对于向量w=c(1,1,2,3,2,3,1),输出将是1,0,0,因为只有值1有两个连续元素,即w的第一个和第二个位置。
【问题讨论】:
-
请添加一个实际示例和预期结果!
-
@Darren 我编辑了我的问题。