2017-09-22 3 views
0

J'essaie de rechercher un mot du texte que j'extrais du fichier pdf qui est le format OCR'd. Ce fichier pdf a plusieurs pages, donc pour chaque page je recherche un mot, si ce mot est trouvé alors je ne veux pas que la boucle for continue, j'ai utilisé le code mais il s'arrête juste à la première page. ce que je manque dans ce code. ici est le codecondition de rupture dans si condition dans r

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 

} 

Toute suggestion est appréciable.

Merci

+0

Cela fonctionne avec l'exemple ci-dessous: 'for (i in SSSS) {if (i == "helo") pause; imprimer (i)} '. – lmo

Répondre

1

stopifnot est la fonction - couplage avec cette grepl devrait vous aider à briser la boucle

> 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 
> 
+0

thumbs up pour "stopifnot" ... – deepesh