示例字符串:

10000110

我的预期结果是:

2,5,8

我使用的代码是:

unlist(gregexpr('0',c('10000110')))

结果是:

2 3 4 5 8

推荐答案

使用strsplit和一个循环:

String = c('10000110')
Index = unlist(gregexpr('0',String))
String = strsplit(String, split="")[[1]]

for(i in Index){
  if(String[i-1] != "0") message(i) #first
  if(String[i-1] == "0" & String[i+1] == "1") message(i) #last
}

R相关问答推荐

DT::可数据的正规表达OR运算符问题

使用ggcorrplot在相关性矩阵上标注supertitle和index标签

过滤矩阵以获得R中的唯一组合

如何使用stat_extract_all正确提取我的目标值?

在R底座中更改白天和夜晚的背景 colored颜色

R箱形图gplot 2 4组但6个参数

如何计算R数据集中每个女性的子元素数量?

在数学中正确显示摄氏度、开氏度或华氏度

如何在R中对深度嵌套的tibbles中的非空连续行求和?

多个过滤器内的一个盒子在仪表板Quarto

多个模拟序列间的一种预测回归关系

我们如何在R中透视数据并在之后添加计算

在具有多个响应变量的比例堆叠条形图上方添加总计

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

R -基线图-图形周围的阴影区域

按两个因素将观测值分组后计算单独的百分比

将文本批注减少到gglot的y轴上的单个值

在生成打印的自定义函数中,可以通过变量将线型或 colored颜色 设置为NULL吗?

每行不同列上的行求和

重写时间间隔模糊连接以减少内存消耗