Я хочу 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. это должно помочь, но мне любопытно, какая часть кода вызывает проблему.