Чтение из pdf - проблема эффективности (R stat) - PullRequest
0 голосов
/ 08 мая 2020

Я хочу go через файлы pdf, получить некоторую информацию, добавить ее во фрейм данных и затем записать csv. Все работает нормально, но у меня проблема с эффективностью. Первые 100 файлов pdf идут за 8 сек c, тогда как файлы от 1000 до 1100 обрабатываются за несколько минут и увеличиваются.

Мой код выглядит так:

#get list of files & set up data.frame:

files <- list.files(path=p_path, pattern="*.pdf", full.names=TRUE, recursive=FALSE)

mydata <- data.frame("ID","type","value")
names(mydata) <-c("ID","type","value")

# loop thrugh files and read pdf:

for (i in (1:length(files)))
  {
  UC_text_source<-pdf_text(files[i]) %>% strsplit(split = "\n")  
  UC_text<- c(UC_text_source[[1]])

#for each file I extract some info, for example (:
  for (j in 1:length(UC_text))
    {

if (str_detect(UC_text[j],"School district"))
            {
            p_begin<-str_locate(UC_text[j],"School district")[2]+1
            p_end<-str_locate(UC_text[j],"\r")[1]-1
            p_schooldistrict<-str_trim(substr(UC_text[j],p_begin,p_end))
            mydata<-rbind(mydata,data.frame(ID=p_Ukey,type="Schoold_district",value=p_schooldistrict))
            }
    }
#Monitoring:
  if (isTRUE(i/100==round(i/100,0)))
  {
    print(Sys.time())
  }
}

Я получил мониторинг состояния в первом l oop (каждые 100 файлов при использовании sys.time ()). Время обработки увеличивается. Я думал о том, чтобы писать csv из data.frame каждые 1000 файлов и очищать data.frame. это должно помочь, но мне любопытно, какая часть кода вызывает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...