我有一个数字数组,我想仅在特定数字单独出现时查找其索引,而不是在同一数字序列中出现时查找。 例如:
a <- c(1,2,4,5,5,8,1,2,8,8,8,4,3)
我想找到在索引6处出现的SINGLE 8的索引,我对其他任何数字都不感兴趣,也不对在索引9-11处出现的8的序列感兴趣。 在R中有一个聪明的方法吗?
答案 0 :(得分:4)
选项为rle
。在rle
上应用vector
,基于values
和lengths
创建逻辑索引,然后在which
上用rep
换行逻辑vector
which(with(rle(a), rep(values == 8 & lengths == 1, lengths)))
#[1] 6