dlookr과 데이터분석 리포트

R Analytics

0.5.0 버전에서는 데이터 진단, EDA, 데이터 변환을 지원하는 리포트의 개선이 가장 두드러진 변화다. 이번 포스트에서 변화된 새로운 리포트에 대해서 소개한다.

유충현
2021-08-04

다룰 이야기

7월말에 dlookr 0.5.0 버전이 CRAN에 등록되었다. 아직 Windows 버전의 바이너리 버전이 빌드되기 전이지만, 며칠 새 빌드될 것이다.

0.5.0 버전에서는 데이터 진단, EDA, 데이터 변환을 지원하는 리포트의 개선이 가장 두드러진 변화다. 이번 포스트에서 변화된 새로운 리포트에 대해서 소개한다. 단, 기능보다는 리포트 포맷 등 물리적으로 변경된 외형 중심으로 소개하기로 한다. 기능적 소개는 다음에 다루도록 하겠다.

이제 dlookr 패키지는 동적 분석이 가능한 웹 기반의 보고서와 PDF 파일과 html 파일로 생성되는 정적 보고서를 제공한다. 인터렉티브하게 데이터 분석을 수행하기 위한 목적의 동적 리포트는 좀 더 직관적인 정보를 제공해 주며, 데이터 분석의 결과를 보관하기 위한 목적의 정적 보고서는 좀 더 팬시한 컨텐츠를 제공한다.

문제 의식

기존 버전의 dlookr 패키지의 보고서는 몇 가지 문제점을 가지고 있었다.

PDF 파일 출력 보고서

PDF 파일로 제공되는 보고서는 LaTeX 기반으로 생성되기 때문에 출력 결과물의 미려함 이면에 보고서를 출력하지 못하는 상황이 있었다. LaTeX 기반으로 동작하기 때문에 LaTeX이 설치되지 않은 환경에서는 사용할 수 없다는 문제점과 비영어권 문자를 지원하지 못한다는 점이다. 한글 문서의 출력을 위해서 kotex을 지원했지만, 사용자 환경에 따라 동작하지 못하는 경우가 발생하였다.

개인적으로 베트남 출장 시에 베트남 언어를 사용할 경우에는 베트남 언어를 지원하게 dlookr 패키지를 수정하여 사용하였지만, 일반 사용자는 영문 이외의 데이터가 포함된 데이터의 보고서를 출력하는 데 크고 작은 이슈가 발생했었다.

html 파일 출력 보고서

html 파일의 경우에는 영문 이외의 문자를 포함한 데이터도 문제 없이 리포팅하였다. 다만, 모든 컨텐츠가 PDF 파일 출력의 것과 동일하였기 때문에, 웹 인터페이스의 장점을 살릴 수 없었다. 즉, PDF 파일 출력이 여의치 않을 경우에 사용하는 보고서가 되었다.

개선 포인트

기존 보고서의 문제점을 개선하기 위해서 다음과 같은 개선 포인트를 선정하여 새 버전의 리포트를 기획하였다.

  1. 비 영어 문화권의 언어를 지원하야 한다.
  2. 보고서의 디자인에 사용자 정의 기능을 부여한다.
  3. 인터렉티브한 분석을 위해서 웹 버전의 보고서는 동적 기능을 부여한다.
  4. 정적 기능의 보고서의 조판 기능을 개선한다.

개선된 보고서

웹 기반의 동적 보고서

동적 보고서는 reactable 패키지를 이용하여 구현하였다. reactable 패키지는 React Table라는 JavaScript 라이브러리를 인터페이스하는 R 패키지다. 이를 이용해서 인터렉티브한 데이터 테이블을 웹 페이지에 구현할 수 있었다.

reactable 패키지를 이용한 데이터 테이블의 인터렉티브는 메뉴를 조작할 때, 실시간으로 정보를 구현하는 것이 아니라, 보고서를 빌드할 때, 미리 드릴링을 위한 시각화 결과와 집계표를 미리 생성한다는 특징이 있다. 그러므로 보고서를 생성할 때, 어느 정도의 시간이 소요된다.

PDF 파일 기반의 정적 보고서

정적 보고서는 pagedown 패키지를 이용하여 구현하였다. pagedown 패키지는 JavaScript 라이브러리 paged.js를 사용하여 HTML 문서의 콘텐츠를 개별 페이지로 분할해 준다. 그리고 분할된 웹 페이지를 크롬과 인터넷익스플르로 엣지를 이용해서 PDF 파일로 변환해 준다.

결국은 이번 버전 업에서 JavaScript가 중요한 역할을 수행한 셈이다. 이제는 패키지의 개발의 데이터 분석가가 아닌, 어플리케이션 개발자의 근성을 일깨워 주고 있다. 그만큼 건드려야 할 기술 요소가 확장되 가고 있음을 절실히 느낀다.

테마의 도입

아주 복잡한 의미의 테마가 아니지만, 테마의 개념을 도입했다. bule 테마와 orange 테마는 각각 푸른색과 오렌지 색의 룩앤필을 제공해 준다. bule 테마는 R의 고유 로고인 푸른색의 R을 위한 기본 색상이고, orange 테마는 회사의 CI에서 따온 것이다. dlookr 패키지를 회사에서도 사용할 수 있으니…

테마와 보고서의 Skelton은 unhcRstyle 패키지를 많이 참조하였다. 가능하면 dependency 패키지에 넣으려 했지만, dependency 패키지가 20개를 초과하는 바람에 unhcRstyle 패키지의 골격을 녹여 넣었다. CRAN의 엄격한 패키지 심사는 dependency 패키지를 20개 이내로 제한하고 있기 때문이다.

데이터 진단 보고서

동적 보고서

diagnose_web_report()의 기본 인수는 orange 테마의 웹 보고서를 생성한다.

# create dataset
heartfailure2 <- dlookr::heartfailure
heartfailure2[sample(seq(NROW(heartfailure2)), 20), "sodium"] <- NA
heartfailure2[sample(seq(NROW(heartfailure2)), 5), "smoking"] <- NA
heartfailure2[sample(seq(NROW(heartfailure2)), 2), "time"] <- 0
heartfailure2[sample(seq(NROW(heartfailure2)), 1), "creatinine"] <- -0.3
 
diagnose_web_report(heartfailure2)

일부 페이지의 모습으로 상단에 메뉴가 표시되어 있어, 해당 영역으로 이동할 수 있다.

테마, 타이틀과 타이틀 색상, 그리고 로고를 바꾸어 보았다.

diagnose_web_report(heartfailure2, title = "데이터 진단",  subtitle = "심장병데이터", 
                    logo_img = "/Users/choonghyunryu/Documents/01_Personal/00_bitr/r2bit.png",
                    title_color = "orange", theme = "blue")

bule 테마의 사례의 특정 화면이다. 테이블의 탭을 눌러 시각화 정보나 통계 요약정보를 조회할 수 있다.

정적 보고서

diagnose_paged_report()의 기본 인수는 orange 테마의 웹 보고서를 생성한다.

diagnose_paged_report(heartfailure2)

PDF 파일 기반의 정적 보고서의 표지다. 로고, 타이블과 서브 타이틀, 표지 이미지 등을 사용자가 변경할 수도 있다.

PDF 파일 기반의 정적 보고서의 표지다. A4 용지에 출력이 가능한 사이즈다.

EDA와 데이터변환 보고서의 스크린 샷

EDA 정적 보고서의 커버

로고와 타이틀의 이름을 바꾼 EDA 정적 보고서

데이터 변환 보고서의 커버

마무리

보고서 기능보다는 리포트 포맷 등 물리적으로 변경된 외형 중심으로 dlookr 0.5.0의 보고서를 살펴 보았다. 다음에는 데이터 분석의 기능 중심으로 보고서를 살펴 보기로 한다.

0.5.0 버전에서는 사용자가 어느 정도 보고서의 포맷과 조판을 수정할 수 있는 기능을 부여했지만, 향후에는 좀더 디테일한 부분까지 편집할 수 있는 기능을 구현하도록 하겠다.

Citation

For attribution, please cite this work as

유충현 (2021, Aug. 4). Dataholic: dlookr과 데이터분석 리포트. Retrieved from https://choonghyunryu.github.io/posts/2021-08-04-dlookr_report/

BibTeX citation

@misc{유충현2021dlookr과,
  author = {유충현, },
  title = {Dataholic: dlookr과 데이터분석 리포트},
  url = {https://choonghyunryu.github.io/posts/2021-08-04-dlookr_report/},
  year = {2021}
}