- R을 이용한 PDF 에서 Table 추출하기2023년 11월 13일 23시 20분 40초에 업로드 된 글입니다.작성자: r-code-for-data-analysis
2024년 대학 입시 정보 pdf 파일에서 각 대학별 수시, 정시 모집 인원 데이터를 뽑는 작업을 하였다.
우선 rjava를 설치해야 한다. 아래 사이트 참고
https://r-pyomega.tistory.com/6
그리고 나서 tabulizer 패키지를 설치한다.
https://blog.djnavarro.net/posts/2023-06-16_tabulizer/
그럼 본격적으로 pdf에서 table을 추출해보자
관심있는 테이블은 아래와 같다.
이걸 어떻게 r 을 이용하여 다루기 쉬운 데이터 프레임으로 바꿀 수 있을까?
#1. 패키지 설치 및 불러오기
Sys.setenv(JAVA_HOME='C:/Program Files/Java/jre-1.8') # install.packages("rJava") library(rJava) # remotes::install_github(c("ropensci/tabulizerjars", "ropensci/tabulizer")) library(tabulizer) library(dplyr) library(tidyr) library(tibble) library(purrr) library(janitor) library(knitr) library(tidyverse)
#2. pdf 파일 불러오기
pdf_file <- "d:/mygpt/2024 대입 정보.pdf" table1 <- extract_tables(pdf_file, pages = 16)
#3. 특정 page의 table을 추출하기
get_page_dims(pdf_file) region <- c(140, 0, 800, 612) mat <- extract_tables( file = pdf_file, pages = 16, guess = FALSE, area = list(region) )[[1]] df <- as.data.frame(mat) df %>%select(-1) -> df1 colnames(df1) <- c("대학", "교과", "종합", "논술", "실기", "소계", "수능", "실기", "학생부", "소계", "합계") df1 %>% kable()
이런 방식으로 대학별 모집 인원을 모두 추출하여 csv 파일로 만들었다.
728x90반응형'데이터 전처리' 카테고리의 다른 글
RSTUDIO로 위키피디아 문서 검색 (tidywikidatar) (0) 2023.05.30 임의의 데이터 만들기 (wakefield) (0) 2023.05.30 구글스프레드 시트 불러와서 RSTUDIO로 코딩하기(googlesheets4) (0) 2023.05.29 GPT를 이용한 R code 수정(gptstudio) (0) 2023.05.28 댓글