У меня есть следующий код, который извлекает таблицы из 9 PDF-документов и создает список из 9 элементов.
library(tabulizer)
files <- dir(path = ".", pattern = "\\.pdf$", full.names = TRUE, recursive = TRUE)
mdata <- list()
All <- lapply(files,function(i){extract_tables(i, header=TRUE)
})
Затем я могу получить данные из первого элемента (который также является первым pdf), используя этот код, и извлекать нужные мне данные:
col_names_list <- lapply(All[[1]], function(x) x[1,]) # we extract the first row (colnames)
data1 <- lapply(All[[1]], function(x) as.matrix(x[-1, ]))
data2 <- map2(All[[1]], col_names_list, function(x,y) {colnames(x)[0] <- y[0]
x})
searchterms <-c('malaria')#, 'cases')
pattern <- paste(searchterms, collapse = "|")
All[[1]] %>%
map(function(x) x[grepl(pattern, x[,1], ignore.case = TRUE),, drop = FALSE])-> df2
Я могу отменитьAll[[1]
до All[[2]]
вручную и запустите код для второго элемента.Как я могу автоматизировать это, чтобы код был применен ко всем 9 элементам.В настоящее время он запускает код только для первого элемента списка.Без [[]]
этого я получаю предупреждение: Error in x[1, ] : incorrect number of dimensions
.