r

时间:2017-09-22 10:28:07

标签: r for-loop if-statement dataframe break

我正在尝试从我从pdf文件中提取的文本中搜索OCR格式的单词。这个pdf文件有多个页面,所以对于每个页面,我正在搜索一个单词,如果找到那个单词,那么我不希望for循环继续,我使用了代码,但它只是停在第一页。我在这段代码中遗漏了什么。 这是代码

for(i in 1:8){
  img_file <- pdftools::pdf_convert("D:/Files_OCR/test.pdf", format = 'tiff', pages = i, dpi = 400)
  text <- ocr(img_file)
  ocr_text <- capture.output(cat(text))
  check=sapply(ocr_text, paste0, collapse="")
  if(length(which(stri_detect_fixed(tolower(check),tolower("school")))) <= 0){ print("Not Present") } else {print("Present")}
  if(br=="present")
break

}

任何建议都值得赞赏。

由于

1 个答案:

答案 0 :(得分:1)

stopifnot是函数 - 将它与grepl耦合应该可以帮助你打破循环

> ssss <- c('hi','helo','confusion','india')
> ssss
[1] "hi"        "helo"      "confusion" "india"    
> for(n in ssss){stopifnot(grepl('confusion',n)); print(n)}
Error: grepl("confusion", n) is not TRUE
> ssss[1] <- 'confusion'
> for(n in ssss){stopifnot(grepl('confusion',n)); print(n)}
[1] "confusion"
Error: grepl("confusion", n) is not TRUE
>