데이터가 요약된 결과를 flextable을 활용하여 한글(HWP) 문서로 출력하는 방법은 다음과 같이 세 단계로 이루어진다.
1. R에서 원하는 통계표 생성
먼저, R을 이용하여 원하는 통계 결과표를 만든다. 예를 들어, mtcars 데이터셋을 요약하여 표로 정리할 수 있다.
코드
library(dplyr)library(flextable)# 데이터 요약summary_table <- mtcars %>%group_by(cyl) %>%summarise(avg_mpg =mean(mpg),avg_hp =mean(hp),count =n() )# `flextable`을 이용하여 보기 좋은 표로 변환table_output <-flextable(summary_table)# 기본 스타일 적용table_output <- table_output %>%theme_vanilla() %>%autofit()table_output
cyl
avg_mpg
avg_hp
count
4
26.66364
82.63636
11
6
19.74286
122.28571
7
8
15.10000
209.21429
14
2. MS Word 문서로 저장
한글 문서(.hwp)로 바로 저장하는 기능은 지원되지 않지만, 우선 MS Word(.docx) 파일로 저장한 후, 한글 문서로 변환하는 방식을 사용하면 된다.
이렇게 생성된 statistics_table.docx 파일은 MS Word에서 열어볼 수 있으며, 이후 한글 파일로 변환하여 저장할 수 있다.
3. 한글(HWP) 파일로 변환
한컴 오피스에서 statistics_table.docx 파일을 열고 한글(HWP) 문서 형식인 .hwp 로 선택하여 저장한다.
5.2 요약 테이블을 만드는 R 패키지 비교
flextable을 사용하여 통계표를 생성하고 Word(.docx)로 저장하는 작업을 gtsummary와 arsenal 패키지를 사용하여 동일하게 수행하는 방법을 소개한다.
이 두 패키지는 의학 및 연구 분야에서 통계표를 손쉽게 생성하는 데 매우 유용하며, 특히 그룹별 기술 통계 및 비교 분석 결과를 깔끔한 형식으로 제공하는 장점이 있다.
하지만 flextable 보다 테이블을 다양하게 출력할 수 있는 선택사항과 유연성이 부족하다. 3개의 패키지의 특징을 다음 표와 같이 요약할 수 있다.
표 5.1: 테이블 작성 패키지의 비교
패키지
주요 기능
특징
flextable
데이터프레임을 표로 변환
다양한 스타일 지정 가능, 보고서용 고품질 테이블 제작
gtsummary
그룹별 기술 통계
평균, 표준편차, 중앙값 등 자동 계산, 깔끔한 보고서 스타일
arsenal
그룹 간 비교 및 통계 검정
t-검정, 카이제곱 검정 포함, 연구 분석에 적합
gtsummary 패키지를 사용한 통계표 생성
gtsummary는 그룹별 기술 통계를 자동으로 요약해 주는 패키지로, 특히 회귀 분석 결과와 그룹별 비교 통계를 자동으로 생성하는 기능이 강력하다.
다음은 tbl_summary 람수를 이용하요 mtcars 데이터에 대한 요약 테이블을 생성하는 과정이다.
코드
library(gtsummary)# 그룹별 요약 통계 생성summary_table_gtsummary <- mtcars %>%select(cyl, mpg, hp) %>%# 필요한 변수 선택tbl_summary(by = cyl, # 그룹 변수 (cyl: 실린더 수)statistic =list(all_continuous() ~"{mean} ({sd})"), # 평균과 표준편차 표시missing ="no") %>%# 결측값 처리modify_header(label ="변수") %>%# 헤더 수정bold_labels() # 변수명을 굵게 표시# 출력summary_table_gtsummary
변수
4 N = 111
6 N = 71
8 N = 141
mpg
26.7 (4.5)
19.7 (1.5)
15.1 (2.6)
hp
83 (21)
122 (24)
209 (51)
1 Mean (SD)
위 코드는 mtcars 데이터셋에서 cyl(실린더 수)별로 mpg(연비)와 hp(마력)의 평균과 표준편차를 요약하여 테이블을 생성한다.
다음으로 gtsummary를 활용하여 Word(docx) 파일로 저장할 수 있다.
코드
library(officer)# Word 문서 생성 및 저장summary_table_gtsummary %>%as_flex_table() %>% flextable::save_as_docx(path = here::here("outputs", "statistics_table_by_gtsummary.docx"))
이제 gtsummary_statistics_table.docx 파일이 생성되며, MS Word에서 열어볼 수 있다.
arsenal 패키지를 활용한 그룹 비교 분석 테이블 생성
arsenal 패키지는 그룹 간 기술 통계를 자동으로 생성하고, 두 그룹을 비교하는 통계 검정을 함께 제공하는 기능을 갖추고 있다.
다음은 tableby()를 활용하여 그룹을 비교 분석하는 프로그램이다.
코드
library(arsenal)# 그룹 비교 분석 (실린더 수에 따른 mpg, hp 차이 검정)summary_table_arsenal <-tableby( cyl ~ mpg + hp, # 그룹 변수: cyl, 비교할 변수: mpg, hpdata = mtcars)# 요약 결과 출력summary(summary_table_arsenal)
4 (N=11)
6 (N=7)
8 (N=14)
Total (N=32)
p value
mpg
< 0.001
Mean (SD)
26.664 (4.510)
19.743 (1.454)
15.100 (2.560)
20.091 (6.027)
Range
21.400 - 33.900
17.800 - 21.400
10.400 - 19.200
10.400 - 33.900
hp
< 0.001
Mean (SD)
82.636 (20.935)
122.286 (24.260)
209.214 (50.977)
146.688 (68.563)
Range
52.000 - 113.000
105.000 - 175.000
150.000 - 335.000
52.000 - 335.000
위 코드는 cyl(실린더 수)에 따라 mpg(연비)와 hp(마력)의 기술 통계 및 그룹 간 차이에 대한 통계적 검정 결과를 제공한다.
다음은 arsenal의 분석 결과를 Word(docx) 파일로 저장하는 과정이다.
코드
# Word 문서로 저장write2word(summary_table_arsenal, file =here::here("outputs", "statistics_table_by_arsenal.docx"))