코드
library(flextable)
<- data.frame(
df = c("홍길동", "김영희", "박찬호", "이소라", "최민식"),
이름 = c(25, 30, 35, 40, 28),
나이 = c("서울", "부산", "서울", "인천", "부산"),
도시 = c(80, 90, 75, 82, 95)
점수 )
통계표를 출력하기 위해 대표적으로 2가지 패키지가 존재한다.
Quarto
여러가지 방법으로 생산된 문서를 다양한 형식(html, pdf, docx, \(\cdots\))으로 출판할 수 있도록 하는 저작도구.
마크다운 언어와 프로그래밍 언어를 같이 사용할 수 있는 기능.
지금 강의노트제작도 Quarto
로 제작했다.
flextable
데이터프레임을 표(table)로 변환하여 다양한 형식(html, pdf, docx,\(\cdots\))으로 출판할 수 패키지.
표에 대한 다양한 형식과 여러가지 기능을 제공.
보고서 수준의 고품질 통계표를 출력 가능.
flextable
로 출력방법설명flextable
을 이용해 아래한글(HWP
)까지 출력하는 방법을 소개해보고자 한다.
결과표 또는 통계표를 갖고 flextable
을 이용해 출력하는 방법은 다음과 같다.
flextable
을 이용해 워드(docx
)로 출력한다.docx
)로 출력한 표를 아래한글(HWP
)로 출력한다.방법을 알았으니 flextable
을 쓰는 방법을 다음 섹션에서 확인해보자.
flextable
예시이전 챕터 dplyr
,tidyr
패키지의 함수소개에서 쓰인 데이터프레임을 갖고 flextable
을 보이는 함수를 소개한다.
library(flextable)
<- data.frame(
df = c("홍길동", "김영희", "박찬호", "이소라", "최민식"),
이름 = c(25, 30, 35, 40, 28),
나이 = c("서울", "부산", "서울", "인천", "부산"),
도시 = c(80, 90, 75, 82, 95)
점수 )
데이터프레임 df를 가장 기본적인 flextable 형태로 보여준다.
<- flextable(df)
ft1 ft1
이름 | 나이 | 도시 | 점수 |
---|---|---|---|
홍길동 | 25 | 서울 | 80 |
김영희 | 30 | 부산 | 90 |
박찬호 | 35 | 서울 | 75 |
이소라 | 40 | 인천 | 82 |
최민식 | 28 | 부산 | 95 |
테이블에서 헤더부분의 행이름부분의 스타일을 설정하는 방법은 다음과 같다.
<- flextable(df)
ft2 # 헤더 부분을 굵게(bold) 설정
<- bold(ft2, part = "header")
ft2
# 헤더 배경 색 지정
<- bg(ft2, bg = "#F5F5F5", part = "header")
ft2
# 표 전체 너비를 자동으로 맞추기
<- autofit(ft2)
ft2
# 박스형 테마 적용(선 굵기가 약간 강조됨)
<- theme_box(ft2)
ft2
ft2
이름 | 나이 | 도시 | 점수 |
---|---|---|---|
홍길동 | 25 | 서울 | 80 |
김영희 | 30 | 부산 | 90 |
박찬호 | 35 | 서울 | 75 |
이소라 | 40 | 인천 | 82 |
최민식 | 28 | 부산 | 95 |
bold(ft2, part = "header")
: 헤더를 볼드체로 만듦
bg(ft2, bg = "#F5F5F5", part = "header")
: 헤더에 배경색을 입힘
autofit()
: 열 너비를 데이터에 맞게 자동 조정
theme_box()
: 테이블에 살짝 박스형 테마 적용
점수가 80 미만인 행 강조하는 코드는 다음과 같다.
<- flextable(df)
ft3
# 조건: 점수가 80 미만인 경우, 해당 행의 "점수" 셀 글씨 색을 빨간색으로
<- color(ft3, i = ~ 점수 < 80, j = "점수", color = "red")
ft3
# 조건: 점수가 80 미만인 경우, 해당 행의 배경을 옅은 분홍색으로
<- bg(ft3, i = ~ 점수 < 80, bg = "#FFF0F0")
ft3
# 조금 더 보기 좋게 자동 너비 조정
<- autofit(ft3)
ft3
ft3
이름 | 나이 | 도시 | 점수 |
---|---|---|---|
홍길동 | 25 | 서울 | 80 |
김영희 | 30 | 부산 | 90 |
박찬호 | 35 | 서울 | 75 |
이소라 | 40 | 인천 | 82 |
최민식 | 28 | 부산 | 95 |
color(ft3, i = ~ 점수 < 80, j = "점수", color = "red")
조건(점수 < 80)
을 만족하는 행의 점수
열을 빨간색 글씨로.
bg(ft3, i = ~ 점수 < 80, bg = "#FFF0F0")
동일한 조건을 만족하는 행의 전체 셀 배경을 옅은 분홍색으로.
일부 열에 숫자를 우측으로 정렬하고 싶거나, 표에 제목을 삽입하고 싶은 경우는 다음과 같다.
<- flextable(df)
ft4
# 나이, 점수 열을 우측 정렬
<- align(ft4, j = c("나이", "점수"), align = "right", part = "body")
ft4
# 표의 제목 삽입
<- add_header_row(
ft4
ft4,values = c("성적표 예시"),
colwidths = 4
)
# 표 너비 자동 설정
<- autofit(ft4)
ft4
ft4
성적표 예시 | |||
---|---|---|---|
이름 | 나이 | 도시 | 점수 |
홍길동 | 25 | 서울 | 80 |
김영희 | 30 | 부산 | 90 |
박찬호 | 35 | 서울 | 75 |
이소라 | 40 | 인천 | 82 |
최민식 | 28 | 부산 | 95 |
align(..., align = "right")
: 숫자 열을 우측 정렬
add_header_row()
: 전체 표 위에 큰 헤더(타이틀) 한 줄 추가
colwidths = 4
는 한 줄을 4개의 컬럼(columns) 폭만큼 병합해서 하나로 만든다는 의미
이전 챕터에서 쓴초등학교 체력측정 자료
의 통계표를 활용해보자.
3가지 스타일의 통계표를 보인 결과를 flextable
로 출력해보자.
load(here::here("data", "physical100_data.RData"))
ls()
[1] "df" "df1_youth" "ft1" "ft2" "ft3" "ft4"
<- summ_function_general(df1_youth, c("TEST_SEX", "TEST_AGE"), c("TEST_YEAR"), c("ITEM_F001", "ITEM_F002"), stat_fun = my_summ_func_2)
tab1
<- summ_function_general(df1_youth, c("TEST_AGE"), c("TEST_YEAR", "TEST_SEX"), c("ITEM_F001", "ITEM_F002"), stat_fun = my_summ_func_2)
tab2
<- summ_function_general(df1_youth, c("TEST_SEX", "TEST_AGE"), c("TEST_YEAR"), c("ITEM_F001", "ITEM_F002"), stat_fun = my_summ_func_2, stat_to_column = TRUE) tab3
tab1
의 통계표를 다음과 같이 적용한다.
tab1_cols <- colnames(tab1)
tab1의 모든 열 이름을 추출해 tab1_cols
에 저장한다.
이 값은 곧 flextable(col_keys = tab1_cols)
에서 사용된다.
tab1 %>% dplyr::group_by(ITEM, TEST_SEX, TEST_AGE)
tab1
를 ITEM
, TEST_SEX
, TEST_AGE
조합으로 그룹화한다.
이후 mutate()
등에서 그룹 내 계산을 수행할 수 있다.
dplyr::mutate(is_last_val_in_group = row_number() == max(row_number()))
각 그룹별(ITEM
, TEST_SEX
, TEST_AGE
)로 행 번호(row_number())를 매기고, 그 번호가 그룹 내 최대값이면 TRUE
를, 아니면 FALSE
를 is_last_val_in_group
컬럼에 저장한다.
flextable(col_keys = tab1_cols )
flextable
패키지로 tab1
를 테이블 형태로 변환한다.
col_keys = tab1_cols
로 지정해, 모든 열(이름은 tab1_cols
)을 테이블에 표시한다.
merge_v(j = 1:3)
j = 1:3
는 테이블의 첫 번째 부터 세 번째 열에 대해 세로 병합을 적용하겠다는 의미이다.
autofit()
셀 너비와 높이를 자동으로 맞추도록 설정한다.
theme_booktabs(bold_header = TRUE)
flextable
의 테마를 “booktabs” 스타일로 지정하고, 헤더(header)를 볼드체로 만든다.
align(align = "left", part = "header", j =1:3)
테이블의 헤더 부분(part = "header"
) 중, 첫 3개 열(j =1:3
)을 왼쪽 정렬("left"
)한다.
colformat_double(i = ~(STAT=="개수" | STAT=="결측개수"), digits = 0, big.mark = get_flextable_defaults()$big.mark)
숫자 서식 지정 함수로써,
i = ~(STAT=="개수" | STAT=="결측개수")
: 조건식으로, STAT 열이 "개수"
또는 "결측개수"
인 행을 골라낸다.
해당 셀들의 표시 소수점 자릿수(digits
)를 0으로 설정 → 정수로 표현.
colformat_double(i = ~!(STAT=="개수" | STAT=="결측개수"), digits = 2)
바로 위와 비슷한 숫자 서식 지정이지만, 조건이 STAT가 “개수” 또는 “결측개수”가 아닌 경우(!()
)이다.
소수점 자릿수를 2로 설정 → 소수 둘째 자리까지 표시한다.
hline(i = ~is_last_val_in_group == TRUE, border = fp_border())
가로줄(hline
)을 추가한다.
i = ~is_last_val_in_group == TRUE
→ 각 그룹의 마지막 행에 가로줄을 그린다.
fp_border()
는 flextable
에서 제공하는 테두리(border) 설정 함수로, 기본 스타일의 선을 만든다.
fix_border_issues()
테이블 테두리 관련된 미세한 문제를 자동으로 조정(수정)해 주는 함수이다.
<- colnames(tab1)
tab1_cols <- tab1 %>%
AA ::group_by(ITEM, TEST_SEX, TEST_AGE) %>%
dplyr::mutate(is_last_val_in_group = row_number() == max(row_number())) %>%
dplyrflextable(col_keys = tab1_cols ) %>%
merge_v( j = 1:3 ) %>%
autofit() %>%
theme_booktabs(bold_header = TRUE) %>%
align(align = "left", part = "header", j =1:3) %>%
colformat_double(i = ~(`STAT`=="개수" | `STAT`=="결측개수" ) , digits = 0,
big.mark = get_flextable_defaults()$big.mark) %>%
colformat_double(i = ~!(`STAT`=="개수" | `STAT`=="결측개수" ), digits = 2) %>%
hline(i = ~is_last_val_in_group == TRUE, border = fp_border()) %>%
fix_border_issues()
AA
ITEM | TEST_SEX | TEST_AGE | STAT | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 |
---|---|---|---|---|---|---|---|---|---|---|
ITEM_F001 | 남성 | 13 | 개수 | 16 | 20 | 26 | 1 | 2 | 3 | 11 |
평균 | 162.35 | 164.72 | 164.89 | 182.80 | 159.40 | 165.27 | 165.61 | |||
표준편차 | 7.45 | 6.90 | 8.64 | 6.22 | 2.66 | 9.18 | ||||
14 | 개수 | 16 | 17 | 32 | 3 | 2 | 7 | 18 | ||
평균 | 165.46 | 168.51 | 167.60 | 169.43 | 170.60 | 171.71 | 168.39 | |||
표준편차 | 5.40 | 5.32 | 6.57 | 4.31 | 11.46 | 11.32 | 7.09 | |||
15 | 개수 | 16 | 22 | 24 | 3 | 2 | 15 | 17 | ||
평균 | 269.78 | 170.98 | 173.60 | 170.90 | 169.70 | 173.38 | 174.19 | |||
표준편차 | 397.69 | 6.55 | 5.36 | 4.62 | 6.65 | 4.95 | 7.11 | |||
16 | 개수 | 15 | 32 | 23 | 4 | 7 | 16 | 11 | ||
평균 | 173.20 | 173.03 | 173.54 | 170.82 | 175.34 | 174.03 | 171.58 | |||
표준편차 | 7.16 | 4.48 | 6.49 | 6.44 | 2.87 | 5.89 | 5.57 | |||
17 | 개수 | 11 | 26 | 30 | 5 | 10 | 11 | 17 | ||
평균 | 175.00 | 173.45 | 173.57 | 174.26 | 173.14 | 174.98 | 174.35 | |||
표준편차 | 4.85 | 4.89 | 6.27 | 4.50 | 6.76 | 3.14 | 8.41 | |||
18 | 개수 | 11 | 14 | 5 | 4 | 6 | 14 | 15 | ||
평균 | 174.53 | 174.63 | 171.58 | 169.32 | 176.53 | 176.56 | 171.25 | |||
표준편차 | 5.83 | 5.84 | 3.83 | 3.72 | 2.45 | 5.85 | 6.46 | |||
여성 | 13 | 개수 | 17 | 11 | 16 | 2 | 5 | 10 | 13 | |
평균 | 157.29 | 156.29 | 156.49 | 158.90 | 157.36 | 160.37 | 159.55 | |||
표준편차 | 7.66 | 5.83 | 3.42 | 4.95 | 1.91 | 4.90 | 8.70 | |||
14 | 개수 | 13 | 16 | 15 | 2 | 4 | 8 | 8 | ||
평균 | 159.90 | 159.35 | 161.04 | 155.60 | 158.32 | 161.88 | 158.96 | |||
표준편차 | 7.36 | 4.67 | 4.53 | 7.78 | 5.31 | 4.99 | 6.86 | |||
15 | 개수 | 18 | 13 | 22 | 2 | 1 | 8 | 18 | ||
평균 | 162.32 | 162.40 | 160.62 | 159.95 | 162.00 | 160.70 | 160.38 | |||
표준편차 | 5.82 | 6.86 | 5.11 | 3.18 | 3.71 | 3.87 | ||||
16 | 개수 | 14 | 24 | 21 | 2 | 3 | 7 | 19 | ||
평균 | 159.31 | 160.92 | 159.68 | 158.65 | 165.07 | 159.14 | 161.44 | |||
표준편차 | 5.44 | 5.05 | 5.96 | 0.49 | 0.85 | 7.63 | 4.34 | |||
17 | 개수 | 15 | 19 | 17 | 3 | 6 | 8 | 14 | ||
평균 | 160.96 | 161.98 | 159.35 | 161.00 | 158.73 | 162.44 | 162.39 | |||
표준편차 | 4.04 | 3.48 | 6.20 | 1.56 | 3.75 | 4.96 | 5.06 | |||
18 | 개수 | 6 | 7 | 5 | 2 | 3 | 11 | 12 | ||
평균 | 161.15 | 160.47 | 163.08 | 164.50 | 156.20 | 162.87 | 160.39 | |||
표준편차 | 6.34 | 6.27 | 4.93 | 5.66 | 3.59 | 7.07 | 8.40 | |||
ITEM_F002 | 남성 | 13 | 개수 | 16 | 20 | 26 | 1 | 2 | 3 | 11 |
평균 | 56.94 | 64.27 | 63.73 | 97.50 | 72.85 | 60.93 | 64.42 | |||
표준편차 | 15.88 | 15.55 | 16.57 | 36.42 | 9.15 | 20.19 | ||||
14 | 개수 | 16 | 17 | 32 | 3 | 2 | 7 | 18 | ||
평균 | 59.13 | 63.08 | 62.97 | 63.07 | 91.00 | 72.96 | 63.51 | |||
표준편차 | 11.66 | 14.85 | 13.39 | 8.28 | 21.92 | 26.35 | 21.32 | |||
15 | 개수 | 16 | 22 | 24 | 3 | 2 | 15 | 17 | ||
평균 | 104.26 | 66.11 | 68.09 | 72.57 | 69.20 | 74.46 | 63.67 | |||
표준편차 | 173.49 | 15.83 | 14.05 | 8.39 | 0.14 | 17.23 | 12.50 | |||
16 | 개수 | 15 | 32 | 23 | 4 | 7 | 16 | 11 | ||
평균 | 66.79 | 73.22 | 65.82 | 60.88 | 76.31 | 66.17 | 67.37 | |||
표준편차 | 9.55 | 13.52 | 9.86 | 4.68 | 9.47 | 9.44 | 9.25 | |||
17 | 개수 | 11 | 26 | 30 | 5 | 10 | 11 | 17 | ||
평균 | 77.21 | 67.40 | 71.21 | 71.56 | 86.48 | 70.89 | 72.19 | |||
표준편차 | 9.33 | 12.21 | 21.51 | 10.26 | 25.39 | 13.50 | 11.80 | |||
18 | 개수 | 11 | 14 | 5 | 4 | 6 | 14 | 15 | ||
평균 | 67.74 | 73.69 | 76.06 | 76.50 | 80.53 | 81.91 | 71.98 | |||
표준편차 | 14.41 | 16.88 | 22.13 | 8.87 | 18.40 | 14.45 | 15.80 | |||
여성 | 13 | 개수 | 17 | 11 | 16 | 2 | 5 | 10 | 13 | |
평균 | 52.74 | 51.03 | 49.35 | 53.00 | 50.38 | 59.63 | 55.64 | |||
표준편차 | 13.06 | 12.55 | 7.32 | 4.24 | 6.38 | 15.17 | 15.08 | |||
14 | 개수 | 13 | 16 | 15 | 2 | 4 | 8 | 8 | ||
평균 | 53.64 | 52.64 | 58.50 | 62.65 | 58.05 | 57.45 | 55.66 | |||
표준편차 | 16.59 | 5.89 | 14.16 | 2.05 | 8.89 | 11.01 | 15.38 | |||
15 | 개수 | 18 | 13 | 22 | 2 | 1 | 8 | 18 | ||
평균 | 58.88 | 61.78 | 56.90 | 61.40 | 50.40 | 57.39 | 55.48 | |||
표준편차 | 11.45 | 11.75 | 7.04 | 19.66 | 12.22 | 8.66 | ||||
16 | 개수 | 14 | 24 | 21 | 2 | 3 | 7 | 19 | ||
평균 | 56.21 | 57.67 | 58.65 | 56.75 | 62.13 | 55.57 | 54.39 | |||
표준편차 | 8.17 | 7.25 | 12.11 | 5.16 | 11.64 | 9.22 | 6.12 | |||
17 | 개수 | 15 | 19 | 17 | 3 | 6 | 8 | 14 | ||
평균 | 62.97 | 55.25 | 61.22 | 56.70 | 55.25 | 61.36 | 57.06 | |||
표준편차 | 13.19 | 13.89 | 16.33 | 13.35 | 4.40 | 14.41 | 15.33 | |||
18 | 개수 | 6 | 7 | 5 | 2 | 3 | 11 | 12 | ||
평균 | 61.92 | 58.01 | 63.88 | 54.30 | 55.53 | 56.31 | 51.76 | |||
표준편차 | 16.52 | 9.31 | 10.74 | 4.38 | 6.50 | 8.56 | 7.47 |
이러한 형태로 다음 통계표도 비슷하게 결과를 낼 수 있다.
하지만 매번 통계표를 구할 때 복잡한 코드를 입력하기 어려우니 이 경우에도 함수를 만들어서 간편하게 돌려보자.
<- colnames(tab2)
tab2_cols <- tab2 %>%
BB ::group_by(ITEM, TEST_AGE) %>%
dplyr::mutate(is_last_val_in_group = row_number() == max(row_number())) %>%
dplyrflextable(col_keys = tab2_cols ) %>%
merge_v( j = 1:2 ) %>%
valign(j = 1:2, valign = "top") %>%
separate_header() %>%
autofit() %>%
theme_booktabs(bold_header = TRUE) %>%
align(align = "left", part = "header", j =1:3) %>%
colformat_double(i = ~(`STAT`=="개수" | `STAT`=="결측개수" ) , digits = 0,
big.mark = get_flextable_defaults()$big.mark) %>%
colformat_double(i = ~!(`STAT`=="개수" | `STAT`=="결측개수" ), digits = 2) %>%
hline(i = ~is_last_val_in_group == TRUE, border = fp_border()) %>%
fix_border_issues()
BB
ITEM | TEST | STAT | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AGE | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | ||
ITEM_F001 | 13 | 개수 | 16 | 17 | 20 | 11 | 26 | 16 | 1 | 2 | 2 | 5 | 3 | 10 | 11 | 13 |
평균 | 162.35 | 157.29 | 164.72 | 156.29 | 164.89 | 156.49 | 182.80 | 158.90 | 159.40 | 157.36 | 165.27 | 160.37 | 165.61 | 159.55 | ||
표준편차 | 7.45 | 7.66 | 6.90 | 5.83 | 8.64 | 3.42 | 4.95 | 6.22 | 1.91 | 2.66 | 4.90 | 9.18 | 8.70 | |||
14 | 개수 | 16 | 13 | 17 | 16 | 32 | 15 | 3 | 2 | 2 | 4 | 7 | 8 | 18 | 8 | |
평균 | 165.46 | 159.90 | 168.51 | 159.35 | 167.60 | 161.04 | 169.43 | 155.60 | 170.60 | 158.32 | 171.71 | 161.88 | 168.39 | 158.96 | ||
표준편차 | 5.40 | 7.36 | 5.32 | 4.67 | 6.57 | 4.53 | 4.31 | 7.78 | 11.46 | 5.31 | 11.32 | 4.99 | 7.09 | 6.86 | ||
15 | 개수 | 16 | 18 | 22 | 13 | 24 | 22 | 3 | 2 | 2 | 1 | 15 | 8 | 17 | 18 | |
평균 | 269.78 | 162.32 | 170.98 | 162.40 | 173.60 | 160.62 | 170.90 | 159.95 | 169.70 | 162.00 | 173.38 | 160.70 | 174.19 | 160.38 | ||
표준편차 | 397.69 | 5.82 | 6.55 | 6.86 | 5.36 | 5.11 | 4.62 | 3.18 | 6.65 | 4.95 | 3.71 | 7.11 | 3.87 | |||
16 | 개수 | 15 | 14 | 32 | 24 | 23 | 21 | 4 | 2 | 7 | 3 | 16 | 7 | 11 | 19 | |
평균 | 173.20 | 159.31 | 173.03 | 160.92 | 173.54 | 159.68 | 170.82 | 158.65 | 175.34 | 165.07 | 174.03 | 159.14 | 171.58 | 161.44 | ||
표준편차 | 7.16 | 5.44 | 4.48 | 5.05 | 6.49 | 5.96 | 6.44 | 0.49 | 2.87 | 0.85 | 5.89 | 7.63 | 5.57 | 4.34 | ||
17 | 개수 | 11 | 15 | 26 | 19 | 30 | 17 | 5 | 3 | 10 | 6 | 11 | 8 | 17 | 14 | |
평균 | 175.00 | 160.96 | 173.45 | 161.98 | 173.57 | 159.35 | 174.26 | 161.00 | 173.14 | 158.73 | 174.98 | 162.44 | 174.35 | 162.39 | ||
표준편차 | 4.85 | 4.04 | 4.89 | 3.48 | 6.27 | 6.20 | 4.50 | 1.56 | 6.76 | 3.75 | 3.14 | 4.96 | 8.41 | 5.06 | ||
18 | 개수 | 11 | 6 | 14 | 7 | 5 | 5 | 4 | 2 | 6 | 3 | 14 | 11 | 15 | 12 | |
평균 | 174.53 | 161.15 | 174.63 | 160.47 | 171.58 | 163.08 | 169.32 | 164.50 | 176.53 | 156.20 | 176.56 | 162.87 | 171.25 | 160.39 | ||
표준편차 | 5.83 | 6.34 | 5.84 | 6.27 | 3.83 | 4.93 | 3.72 | 5.66 | 2.45 | 3.59 | 5.85 | 7.07 | 6.46 | 8.40 | ||
ITEM_F002 | 13 | 개수 | 16 | 17 | 20 | 11 | 26 | 16 | 1 | 2 | 2 | 5 | 3 | 10 | 11 | 13 |
평균 | 56.94 | 52.74 | 64.27 | 51.03 | 63.73 | 49.35 | 97.50 | 53.00 | 72.85 | 50.38 | 60.93 | 59.63 | 64.42 | 55.64 | ||
표준편차 | 15.88 | 13.06 | 15.55 | 12.55 | 16.57 | 7.32 | 4.24 | 36.42 | 6.38 | 9.15 | 15.17 | 20.19 | 15.08 | |||
14 | 개수 | 16 | 13 | 17 | 16 | 32 | 15 | 3 | 2 | 2 | 4 | 7 | 8 | 18 | 8 | |
평균 | 59.13 | 53.64 | 63.08 | 52.64 | 62.97 | 58.50 | 63.07 | 62.65 | 91.00 | 58.05 | 72.96 | 57.45 | 63.51 | 55.66 | ||
표준편차 | 11.66 | 16.59 | 14.85 | 5.89 | 13.39 | 14.16 | 8.28 | 2.05 | 21.92 | 8.89 | 26.35 | 11.01 | 21.32 | 15.38 | ||
15 | 개수 | 16 | 18 | 22 | 13 | 24 | 22 | 3 | 2 | 2 | 1 | 15 | 8 | 17 | 18 | |
평균 | 104.26 | 58.88 | 66.11 | 61.78 | 68.09 | 56.90 | 72.57 | 61.40 | 69.20 | 50.40 | 74.46 | 57.39 | 63.67 | 55.48 | ||
표준편차 | 173.49 | 11.45 | 15.83 | 11.75 | 14.05 | 7.04 | 8.39 | 19.66 | 0.14 | 17.23 | 12.22 | 12.50 | 8.66 | |||
16 | 개수 | 15 | 14 | 32 | 24 | 23 | 21 | 4 | 2 | 7 | 3 | 16 | 7 | 11 | 19 | |
평균 | 66.79 | 56.21 | 73.22 | 57.67 | 65.82 | 58.65 | 60.88 | 56.75 | 76.31 | 62.13 | 66.17 | 55.57 | 67.37 | 54.39 | ||
표준편차 | 9.55 | 8.17 | 13.52 | 7.25 | 9.86 | 12.11 | 4.68 | 5.16 | 9.47 | 11.64 | 9.44 | 9.22 | 9.25 | 6.12 | ||
17 | 개수 | 11 | 15 | 26 | 19 | 30 | 17 | 5 | 3 | 10 | 6 | 11 | 8 | 17 | 14 | |
평균 | 77.21 | 62.97 | 67.40 | 55.25 | 71.21 | 61.22 | 71.56 | 56.70 | 86.48 | 55.25 | 70.89 | 61.36 | 72.19 | 57.06 | ||
표준편차 | 9.33 | 13.19 | 12.21 | 13.89 | 21.51 | 16.33 | 10.26 | 13.35 | 25.39 | 4.40 | 13.50 | 14.41 | 11.80 | 15.33 | ||
18 | 개수 | 11 | 6 | 14 | 7 | 5 | 5 | 4 | 2 | 6 | 3 | 14 | 11 | 15 | 12 | |
평균 | 67.74 | 61.92 | 73.69 | 58.01 | 76.06 | 63.88 | 76.50 | 54.30 | 80.53 | 55.53 | 81.91 | 56.31 | 71.98 | 51.76 | ||
표준편차 | 14.41 | 16.52 | 16.88 | 9.31 | 22.13 | 10.74 | 8.87 | 4.38 | 18.40 | 6.50 | 14.45 | 8.56 | 15.80 | 7.47 |
<- colnames(tab3)
tab3_cols <- tab3 %>%
CC ::group_by(ITEM, TEST_SEX) %>%
dplyr::mutate(is_last_val_in_group = row_number() == max(row_number())) %>%
dplyrflextable(col_keys = tab3_cols ) %>%
merge_v( j = 1:2 ) %>%
valign(j = 1:2, valign = "top") %>%
separate_header() %>%
autofit() %>%
theme_booktabs(bold_header = TRUE) %>%
align(align = "left", part = "header", j =1:3) %>%
#colformat_double(i = ~(`STAT`=="개수" | `STAT`=="결측개수" ) , digits = 0,
# big.mark = get_flextable_defaults()$big.mark) %>%
#colformat_double(i = ~!(`STAT`=="개수" | `STAT`=="결측개수" ), digits = 2) %>%
hline(i = ~is_last_val_in_group == TRUE, border = fp_border()) %>%
fix_border_issues()
CC
ITEM | TEST | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SEX | AGE | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | |
ITEM_F001 | 남성 | 13 | 16 | 162.35000 | 7.448937 | 20 | 164.71500 | 6.895328 | 26 | 164.89231 | 8.639024 | 1 | 182.80000 | 2 | 159.40000 | 6.2225397 | 3 | 165.26667 | 2.663331 | 11 | 165.60909 | 9.177304 | |
14 | 16 | 165.45625 | 5.399873 | 17 | 168.50588 | 5.318067 | 32 | 167.60313 | 6.567539 | 3 | 169.43333 | 4.3096790 | 2 | 170.60000 | 11.4551299 | 7 | 171.71429 | 11.317159 | 18 | 168.38889 | 7.085602 | ||
15 | 16 | 269.78125 | 397.692213 | 22 | 170.97727 | 6.552058 | 24 | 173.60000 | 5.362592 | 3 | 170.90000 | 4.6227697 | 2 | 169.70000 | 6.6468037 | 15 | 173.38000 | 4.947900 | 17 | 174.18824 | 7.105005 | ||
16 | 15 | 173.20000 | 7.156915 | 32 | 173.03125 | 4.476421 | 23 | 173.53913 | 6.486751 | 4 | 170.82500 | 6.4391381 | 7 | 175.34286 | 2.8692956 | 16 | 174.03125 | 5.888488 | 11 | 171.58182 | 5.568989 | ||
17 | 11 | 175.00000 | 4.850979 | 26 | 173.45000 | 4.888374 | 30 | 173.57333 | 6.267262 | 5 | 174.26000 | 4.4964430 | 10 | 173.14000 | 6.7641539 | 11 | 174.98182 | 3.136819 | 17 | 174.35294 | 8.408412 | ||
18 | 11 | 174.52727 | 5.833197 | 14 | 174.62857 | 5.844054 | 5 | 171.58000 | 3.834319 | 4 | 169.32500 | 3.7187588 | 6 | 176.53333 | 2.4459490 | 14 | 176.55714 | 5.852772 | 15 | 171.24667 | 6.460856 | ||
여성 | 13 | 17 | 157.28824 | 7.663214 | 11 | 156.29091 | 5.826054 | 16 | 156.49375 | 3.423150 | 2 | 158.90000 | 4.9497475 | 5 | 157.36000 | 1.9060430 | 10 | 160.37000 | 4.903298 | 13 | 159.55385 | 8.704751 | |
14 | 13 | 159.90000 | 7.355723 | 16 | 159.35000 | 4.665047 | 15 | 161.04000 | 4.529869 | 2 | 155.60000 | 7.7781746 | 4 | 158.32500 | 5.3080913 | 8 | 161.87500 | 4.987341 | 8 | 158.96250 | 6.857100 | ||
15 | 18 | 162.31667 | 5.818353 | 13 | 162.40000 | 6.858450 | 22 | 160.62273 | 5.114678 | 2 | 159.95000 | 3.1819805 | 1 | 162.00000 | 8 | 160.70000 | 3.706751 | 18 | 160.38333 | 3.873021 | |||
16 | 14 | 159.31429 | 5.439154 | 24 | 160.92083 | 5.050095 | 21 | 159.68095 | 5.956309 | 2 | 158.65000 | 0.4949747 | 3 | 165.06667 | 0.8504901 | 7 | 159.14286 | 7.628424 | 19 | 161.43684 | 4.344883 | ||
17 | 15 | 160.96000 | 4.036760 | 19 | 161.98421 | 3.481102 | 17 | 159.34706 | 6.197491 | 3 | 161.00000 | 1.5620499 | 6 | 158.73333 | 3.7494889 | 8 | 162.43750 | 4.955210 | 14 | 162.38571 | 5.063574 | ||
18 | 6 | 161.15000 | 6.338060 | 7 | 160.47143 | 6.273945 | 5 | 163.08000 | 4.930213 | 2 | 164.50000 | 5.6568542 | 3 | 156.20000 | 3.5930488 | 11 | 162.87273 | 7.072778 | 12 | 160.39167 | 8.397668 | ||
ITEM_F002 | 남성 | 13 | 16 | 56.94375 | 15.884289 | 20 | 64.26500 | 15.545562 | 26 | 63.73077 | 16.570716 | 1 | 97.50000 | 2 | 72.85000 | 36.4159992 | 3 | 60.93333 | 9.154416 | 11 | 64.41818 | 20.188453 | |
14 | 16 | 59.13125 | 11.659086 | 17 | 63.07647 | 14.848086 | 32 | 62.96875 | 13.394256 | 3 | 63.06667 | 8.2778822 | 2 | 91.00000 | 21.9203102 | 7 | 72.95714 | 26.349058 | 18 | 63.50556 | 21.315873 | ||
15 | 16 | 104.26250 | 173.489050 | 22 | 66.11364 | 15.825425 | 24 | 68.09167 | 14.052446 | 3 | 72.56667 | 8.3930527 | 2 | 69.20000 | 0.1414214 | 15 | 74.46000 | 17.230695 | 17 | 63.67059 | 12.500138 | ||
16 | 15 | 66.78667 | 9.549336 | 32 | 73.22187 | 13.522806 | 23 | 65.82174 | 9.863153 | 4 | 60.87500 | 4.6800107 | 7 | 76.31429 | 9.4735471 | 16 | 66.16875 | 9.440602 | 11 | 67.37273 | 9.252361 | ||
17 | 11 | 77.20909 | 9.333215 | 26 | 67.40000 | 12.206883 | 30 | 71.20667 | 21.510125 | 5 | 71.56000 | 10.2600195 | 10 | 86.48000 | 25.3946101 | 11 | 70.89091 | 13.501293 | 17 | 72.18824 | 11.797186 | ||
18 | 11 | 67.73636 | 14.405573 | 14 | 73.68571 | 16.877015 | 5 | 76.06000 | 22.125845 | 4 | 76.50000 | 8.8690473 | 6 | 80.53333 | 18.3988768 | 14 | 81.91429 | 14.448788 | 15 | 71.98000 | 15.796347 | ||
여성 | 13 | 17 | 52.73529 | 13.056413 | 11 | 51.02727 | 12.546481 | 16 | 49.35000 | 7.319381 | 2 | 53.00000 | 4.2426407 | 5 | 50.38000 | 6.3762842 | 10 | 59.63000 | 15.168831 | 13 | 55.63846 | 15.079597 | |
14 | 13 | 53.63846 | 16.585965 | 16 | 52.63750 | 5.889298 | 15 | 58.50000 | 14.159600 | 2 | 62.65000 | 2.0506097 | 4 | 58.05000 | 8.8925062 | 8 | 57.45000 | 11.006751 | 8 | 55.66250 | 15.383752 | ||
15 | 18 | 58.88333 | 11.447849 | 13 | 61.77692 | 11.747919 | 22 | 56.90000 | 7.043065 | 2 | 61.40000 | 19.6575685 | 1 | 50.40000 | 8 | 57.38750 | 12.218538 | 18 | 55.47778 | 8.658933 | |||
16 | 14 | 56.20714 | 8.167804 | 24 | 57.67500 | 7.253979 | 21 | 58.65238 | 12.105933 | 2 | 56.75000 | 5.1618795 | 3 | 62.13333 | 11.6423079 | 7 | 55.57143 | 9.224734 | 19 | 54.39474 | 6.117504 | ||
17 | 15 | 62.96667 | 13.193487 | 19 | 55.25263 | 13.886499 | 17 | 61.22353 | 16.329671 | 3 | 56.70000 | 13.3461605 | 6 | 55.25000 | 4.4021586 | 8 | 61.36250 | 14.413975 | 14 | 57.06429 | 15.334908 | ||
18 | 6 | 61.91667 | 16.521794 | 7 | 58.01429 | 9.313866 | 5 | 63.88000 | 10.742998 | 2 | 54.30000 | 4.3840620 | 3 | 55.53333 | 6.5041013 | 11 | 56.30909 | 8.559843 | 12 | 51.76000 | 7.470178 |
flextable
도 dplyr
,tidyr
와 마찬가지로 여러가지 세부조정을 할수 있기에 코드가 많이 복잡할 수 있다.
또한, 통계표를 1개만 출력하는 것이 아니기에 여러가지 통계표를 출력하는 데 비효율적이므로 함수를 만들어서 간편하게 통계표를 출력해보자.
table_function_general
은 예제에 나온 코드와의 차이점은
“이 데이터프레임의 상위 몇 개 열을 ’행 그룹’으로 지정할 것인지”를 num_group_rows
로 조절한다.
직접함수를 만들 때 필요한 것으로 입력한 인자를 잘 인식시키기 위해 !!!
와 syms
를 적용했다.
<- function(df, num_group_rows) {
table_function_general
<- colnames(df)
table_cols <- syms(table_cols[1:num_group_rows])
col1
<- df %>%
ft1
::group_by(!!!col1) %>%
dplyr::mutate(is_last_val_in_group = row_number() == max(row_number())) %>%
dplyrflextable(col_keys = table_cols ) %>%
merge_v( j = 1:num_group_rows ) %>%
valign(j = 1:(num_group_rows), valign = "top") %>%
separate_header() %>%
autofit() %>%
theme_booktabs(bold_header = TRUE) %>%
align(align = "left", part = "header", j =1:num_group_rows) %>%
#colformat_double(i = ~(`STAT`=="개수" | `STAT`=="결측개수" ) , digits = 0,
# big.mark = get_flextable_defaults()$big.mark) %>%
#colformat_double(i = ~!(`STAT`=="개수" | `STAT`=="결측개수" ), digits = 2) %>%
hline(i = ~is_last_val_in_group == TRUE, border = fp_border()) %>%
fix_border_issues()
return(ft1)
}
직접 만든 함수를 사용하여 다음과 같이 통계표를 쉽게 구할 수 있다.
<- table_function_general(tab1, 3)
mytable1 mytable1
ITEM | TEST | STAT | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |
---|---|---|---|---|---|---|---|---|---|---|
SEX | AGE | |||||||||
ITEM_F001 | 남성 | 13 | 개수 | 16.000000 | 20.000000 | 26.000000 | 1.0000000 | 2.0000000 | 3.000000 | 11.000000 |
평균 | 162.350000 | 164.715000 | 164.892308 | 182.8000000 | 159.4000000 | 165.266667 | 165.609091 | |||
표준편차 | 7.448937 | 6.895328 | 8.639024 | 6.2225397 | 2.663331 | 9.177304 | ||||
14 | 개수 | 16.000000 | 17.000000 | 32.000000 | 3.0000000 | 2.0000000 | 7.000000 | 18.000000 | ||
평균 | 165.456250 | 168.505882 | 167.603125 | 169.4333333 | 170.6000000 | 171.714286 | 168.388889 | |||
표준편차 | 5.399873 | 5.318067 | 6.567539 | 4.3096790 | 11.4551299 | 11.317159 | 7.085602 | |||
15 | 개수 | 16.000000 | 22.000000 | 24.000000 | 3.0000000 | 2.0000000 | 15.000000 | 17.000000 | ||
평균 | 269.781250 | 170.977273 | 173.600000 | 170.9000000 | 169.7000000 | 173.380000 | 174.188235 | |||
표준편차 | 397.692213 | 6.552058 | 5.362592 | 4.6227697 | 6.6468037 | 4.947900 | 7.105005 | |||
16 | 개수 | 15.000000 | 32.000000 | 23.000000 | 4.0000000 | 7.0000000 | 16.000000 | 11.000000 | ||
평균 | 173.200000 | 173.031250 | 173.539130 | 170.8250000 | 175.3428571 | 174.031250 | 171.581818 | |||
표준편차 | 7.156915 | 4.476421 | 6.486751 | 6.4391381 | 2.8692956 | 5.888488 | 5.568989 | |||
17 | 개수 | 11.000000 | 26.000000 | 30.000000 | 5.0000000 | 10.0000000 | 11.000000 | 17.000000 | ||
평균 | 175.000000 | 173.450000 | 173.573333 | 174.2600000 | 173.1400000 | 174.981818 | 174.352941 | |||
표준편차 | 4.850979 | 4.888374 | 6.267262 | 4.4964430 | 6.7641539 | 3.136819 | 8.408412 | |||
18 | 개수 | 11.000000 | 14.000000 | 5.000000 | 4.0000000 | 6.0000000 | 14.000000 | 15.000000 | ||
평균 | 174.527273 | 174.628571 | 171.580000 | 169.3250000 | 176.5333333 | 176.557143 | 171.246667 | |||
표준편차 | 5.833197 | 5.844054 | 3.834319 | 3.7187588 | 2.4459490 | 5.852772 | 6.460856 | |||
여성 | 13 | 개수 | 17.000000 | 11.000000 | 16.000000 | 2.0000000 | 5.0000000 | 10.000000 | 13.000000 | |
평균 | 157.288235 | 156.290909 | 156.493750 | 158.9000000 | 157.3600000 | 160.370000 | 159.553846 | |||
표준편차 | 7.663214 | 5.826054 | 3.423150 | 4.9497475 | 1.9060430 | 4.903298 | 8.704751 | |||
14 | 개수 | 13.000000 | 16.000000 | 15.000000 | 2.0000000 | 4.0000000 | 8.000000 | 8.000000 | ||
평균 | 159.900000 | 159.350000 | 161.040000 | 155.6000000 | 158.3250000 | 161.875000 | 158.962500 | |||
표준편차 | 7.355723 | 4.665047 | 4.529869 | 7.7781746 | 5.3080913 | 4.987341 | 6.857100 | |||
15 | 개수 | 18.000000 | 13.000000 | 22.000000 | 2.0000000 | 1.0000000 | 8.000000 | 18.000000 | ||
평균 | 162.316667 | 162.400000 | 160.622727 | 159.9500000 | 162.0000000 | 160.700000 | 160.383333 | |||
표준편차 | 5.818353 | 6.858450 | 5.114678 | 3.1819805 | 3.706751 | 3.873021 | ||||
16 | 개수 | 14.000000 | 24.000000 | 21.000000 | 2.0000000 | 3.0000000 | 7.000000 | 19.000000 | ||
평균 | 159.314286 | 160.920833 | 159.680952 | 158.6500000 | 165.0666667 | 159.142857 | 161.436842 | |||
표준편차 | 5.439154 | 5.050095 | 5.956309 | 0.4949747 | 0.8504901 | 7.628424 | 4.344883 | |||
17 | 개수 | 15.000000 | 19.000000 | 17.000000 | 3.0000000 | 6.0000000 | 8.000000 | 14.000000 | ||
평균 | 160.960000 | 161.984211 | 159.347059 | 161.0000000 | 158.7333333 | 162.437500 | 162.385714 | |||
표준편차 | 4.036760 | 3.481102 | 6.197491 | 1.5620499 | 3.7494889 | 4.955210 | 5.063574 | |||
18 | 개수 | 6.000000 | 7.000000 | 5.000000 | 2.0000000 | 3.0000000 | 11.000000 | 12.000000 | ||
평균 | 161.150000 | 160.471429 | 163.080000 | 164.5000000 | 156.2000000 | 162.872727 | 160.391667 | |||
표준편차 | 6.338060 | 6.273945 | 4.930213 | 5.6568542 | 3.5930488 | 7.072778 | 8.397668 | |||
ITEM_F002 | 남성 | 13 | 개수 | 16.000000 | 20.000000 | 26.000000 | 1.0000000 | 2.0000000 | 3.000000 | 11.000000 |
평균 | 56.943750 | 64.265000 | 63.730769 | 97.5000000 | 72.8500000 | 60.933333 | 64.418182 | |||
표준편차 | 15.884289 | 15.545562 | 16.570716 | 36.4159992 | 9.154416 | 20.188453 | ||||
14 | 개수 | 16.000000 | 17.000000 | 32.000000 | 3.0000000 | 2.0000000 | 7.000000 | 18.000000 | ||
평균 | 59.131250 | 63.076471 | 62.968750 | 63.0666667 | 91.0000000 | 72.957143 | 63.505556 | |||
표준편차 | 11.659086 | 14.848086 | 13.394256 | 8.2778822 | 21.9203102 | 26.349058 | 21.315873 | |||
15 | 개수 | 16.000000 | 22.000000 | 24.000000 | 3.0000000 | 2.0000000 | 15.000000 | 17.000000 | ||
평균 | 104.262500 | 66.113636 | 68.091667 | 72.5666667 | 69.2000000 | 74.460000 | 63.670588 | |||
표준편차 | 173.489050 | 15.825425 | 14.052446 | 8.3930527 | 0.1414214 | 17.230695 | 12.500138 | |||
16 | 개수 | 15.000000 | 32.000000 | 23.000000 | 4.0000000 | 7.0000000 | 16.000000 | 11.000000 | ||
평균 | 66.786667 | 73.221875 | 65.821739 | 60.8750000 | 76.3142857 | 66.168750 | 67.372727 | |||
표준편차 | 9.549336 | 13.522806 | 9.863153 | 4.6800107 | 9.4735471 | 9.440602 | 9.252361 | |||
17 | 개수 | 11.000000 | 26.000000 | 30.000000 | 5.0000000 | 10.0000000 | 11.000000 | 17.000000 | ||
평균 | 77.209091 | 67.400000 | 71.206667 | 71.5600000 | 86.4800000 | 70.890909 | 72.188235 | |||
표준편차 | 9.333215 | 12.206883 | 21.510125 | 10.2600195 | 25.3946101 | 13.501293 | 11.797186 | |||
18 | 개수 | 11.000000 | 14.000000 | 5.000000 | 4.0000000 | 6.0000000 | 14.000000 | 15.000000 | ||
평균 | 67.736364 | 73.685714 | 76.060000 | 76.5000000 | 80.5333333 | 81.914286 | 71.980000 | |||
표준편차 | 14.405573 | 16.877015 | 22.125845 | 8.8690473 | 18.3988768 | 14.448788 | 15.796347 | |||
여성 | 13 | 개수 | 17.000000 | 11.000000 | 16.000000 | 2.0000000 | 5.0000000 | 10.000000 | 13.000000 | |
평균 | 52.735294 | 51.027273 | 49.350000 | 53.0000000 | 50.3800000 | 59.630000 | 55.638462 | |||
표준편차 | 13.056413 | 12.546481 | 7.319381 | 4.2426407 | 6.3762842 | 15.168831 | 15.079597 | |||
14 | 개수 | 13.000000 | 16.000000 | 15.000000 | 2.0000000 | 4.0000000 | 8.000000 | 8.000000 | ||
평균 | 53.638462 | 52.637500 | 58.500000 | 62.6500000 | 58.0500000 | 57.450000 | 55.662500 | |||
표준편차 | 16.585965 | 5.889298 | 14.159600 | 2.0506097 | 8.8925062 | 11.006751 | 15.383752 | |||
15 | 개수 | 18.000000 | 13.000000 | 22.000000 | 2.0000000 | 1.0000000 | 8.000000 | 18.000000 | ||
평균 | 58.883333 | 61.776923 | 56.900000 | 61.4000000 | 50.4000000 | 57.387500 | 55.477778 | |||
표준편차 | 11.447849 | 11.747919 | 7.043065 | 19.6575685 | 12.218538 | 8.658933 | ||||
16 | 개수 | 14.000000 | 24.000000 | 21.000000 | 2.0000000 | 3.0000000 | 7.000000 | 19.000000 | ||
평균 | 56.207143 | 57.675000 | 58.652381 | 56.7500000 | 62.1333333 | 55.571429 | 54.394737 | |||
표준편차 | 8.167804 | 7.253979 | 12.105933 | 5.1618795 | 11.6423079 | 9.224734 | 6.117504 | |||
17 | 개수 | 15.000000 | 19.000000 | 17.000000 | 3.0000000 | 6.0000000 | 8.000000 | 14.000000 | ||
평균 | 62.966667 | 55.252632 | 61.223529 | 56.7000000 | 55.2500000 | 61.362500 | 57.064286 | |||
표준편차 | 13.193487 | 13.886499 | 16.329671 | 13.3461605 | 4.4021586 | 14.413975 | 15.334908 | |||
18 | 개수 | 6.000000 | 7.000000 | 5.000000 | 2.0000000 | 3.0000000 | 11.000000 | 12.000000 | ||
평균 | 61.916667 | 58.014286 | 63.880000 | 54.3000000 | 55.5333333 | 56.309091 | 51.760000 | |||
표준편차 | 16.521794 | 9.313866 | 10.742998 | 4.3840620 | 6.5041013 | 8.559843 | 7.470178 |
<- table_function_general(tab2, 2)
mytable2 mytable2
ITEM | TEST | STAT | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AGE | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | 남성 | 여성 | ||
ITEM_F001 | 13 | 개수 | 16.000000 | 17.000000 | 20.000000 | 11.000000 | 26.000000 | 16.000000 | 1.000000 | 2.0000000 | 2.0000000 | 5.0000000 | 3.000000 | 10.000000 | 11.000000 | 13.000000 |
평균 | 162.350000 | 157.288235 | 164.715000 | 156.290909 | 164.892308 | 156.493750 | 182.800000 | 158.9000000 | 159.4000000 | 157.3600000 | 165.266667 | 160.370000 | 165.609091 | 159.553846 | ||
표준편차 | 7.448937 | 7.663214 | 6.895328 | 5.826054 | 8.639024 | 3.423150 | 4.9497475 | 6.2225397 | 1.9060430 | 2.663331 | 4.903298 | 9.177304 | 8.704751 | |||
14 | 개수 | 16.000000 | 13.000000 | 17.000000 | 16.000000 | 32.000000 | 15.000000 | 3.000000 | 2.0000000 | 2.0000000 | 4.0000000 | 7.000000 | 8.000000 | 18.000000 | 8.000000 | |
평균 | 165.456250 | 159.900000 | 168.505882 | 159.350000 | 167.603125 | 161.040000 | 169.433333 | 155.6000000 | 170.6000000 | 158.3250000 | 171.714286 | 161.875000 | 168.388889 | 158.962500 | ||
표준편차 | 5.399873 | 7.355723 | 5.318067 | 4.665047 | 6.567539 | 4.529869 | 4.309679 | 7.7781746 | 11.4551299 | 5.3080913 | 11.317159 | 4.987341 | 7.085602 | 6.857100 | ||
15 | 개수 | 16.000000 | 18.000000 | 22.000000 | 13.000000 | 24.000000 | 22.000000 | 3.000000 | 2.0000000 | 2.0000000 | 1.0000000 | 15.000000 | 8.000000 | 17.000000 | 18.000000 | |
평균 | 269.781250 | 162.316667 | 170.977273 | 162.400000 | 173.600000 | 160.622727 | 170.900000 | 159.9500000 | 169.7000000 | 162.0000000 | 173.380000 | 160.700000 | 174.188235 | 160.383333 | ||
표준편차 | 397.692213 | 5.818353 | 6.552058 | 6.858450 | 5.362592 | 5.114678 | 4.622770 | 3.1819805 | 6.6468037 | 4.947900 | 3.706751 | 7.105005 | 3.873021 | |||
16 | 개수 | 15.000000 | 14.000000 | 32.000000 | 24.000000 | 23.000000 | 21.000000 | 4.000000 | 2.0000000 | 7.0000000 | 3.0000000 | 16.000000 | 7.000000 | 11.000000 | 19.000000 | |
평균 | 173.200000 | 159.314286 | 173.031250 | 160.920833 | 173.539130 | 159.680952 | 170.825000 | 158.6500000 | 175.3428571 | 165.0666667 | 174.031250 | 159.142857 | 171.581818 | 161.436842 | ||
표준편차 | 7.156915 | 5.439154 | 4.476421 | 5.050095 | 6.486751 | 5.956309 | 6.439138 | 0.4949747 | 2.8692956 | 0.8504901 | 5.888488 | 7.628424 | 5.568989 | 4.344883 | ||
17 | 개수 | 11.000000 | 15.000000 | 26.000000 | 19.000000 | 30.000000 | 17.000000 | 5.000000 | 3.0000000 | 10.0000000 | 6.0000000 | 11.000000 | 8.000000 | 17.000000 | 14.000000 | |
평균 | 175.000000 | 160.960000 | 173.450000 | 161.984211 | 173.573333 | 159.347059 | 174.260000 | 161.0000000 | 173.1400000 | 158.7333333 | 174.981818 | 162.437500 | 174.352941 | 162.385714 | ||
표준편차 | 4.850979 | 4.036760 | 4.888374 | 3.481102 | 6.267262 | 6.197491 | 4.496443 | 1.5620499 | 6.7641539 | 3.7494889 | 3.136819 | 4.955210 | 8.408412 | 5.063574 | ||
18 | 개수 | 11.000000 | 6.000000 | 14.000000 | 7.000000 | 5.000000 | 5.000000 | 4.000000 | 2.0000000 | 6.0000000 | 3.0000000 | 14.000000 | 11.000000 | 15.000000 | 12.000000 | |
평균 | 174.527273 | 161.150000 | 174.628571 | 160.471429 | 171.580000 | 163.080000 | 169.325000 | 164.5000000 | 176.5333333 | 156.2000000 | 176.557143 | 162.872727 | 171.246667 | 160.391667 | ||
표준편차 | 5.833197 | 6.338060 | 5.844054 | 6.273945 | 3.834319 | 4.930213 | 3.718759 | 5.6568542 | 2.4459490 | 3.5930488 | 5.852772 | 7.072778 | 6.460856 | 8.397668 | ||
ITEM_F002 | 13 | 개수 | 16.000000 | 17.000000 | 20.000000 | 11.000000 | 26.000000 | 16.000000 | 1.000000 | 2.0000000 | 2.0000000 | 5.0000000 | 3.000000 | 10.000000 | 11.000000 | 13.000000 |
평균 | 56.943750 | 52.735294 | 64.265000 | 51.027273 | 63.730769 | 49.350000 | 97.500000 | 53.0000000 | 72.8500000 | 50.3800000 | 60.933333 | 59.630000 | 64.418182 | 55.638462 | ||
표준편차 | 15.884289 | 13.056413 | 15.545562 | 12.546481 | 16.570716 | 7.319381 | 4.2426407 | 36.4159992 | 6.3762842 | 9.154416 | 15.168831 | 20.188453 | 15.079597 | |||
14 | 개수 | 16.000000 | 13.000000 | 17.000000 | 16.000000 | 32.000000 | 15.000000 | 3.000000 | 2.0000000 | 2.0000000 | 4.0000000 | 7.000000 | 8.000000 | 18.000000 | 8.000000 | |
평균 | 59.131250 | 53.638462 | 63.076471 | 52.637500 | 62.968750 | 58.500000 | 63.066667 | 62.6500000 | 91.0000000 | 58.0500000 | 72.957143 | 57.450000 | 63.505556 | 55.662500 | ||
표준편차 | 11.659086 | 16.585965 | 14.848086 | 5.889298 | 13.394256 | 14.159600 | 8.277882 | 2.0506097 | 21.9203102 | 8.8925062 | 26.349058 | 11.006751 | 21.315873 | 15.383752 | ||
15 | 개수 | 16.000000 | 18.000000 | 22.000000 | 13.000000 | 24.000000 | 22.000000 | 3.000000 | 2.0000000 | 2.0000000 | 1.0000000 | 15.000000 | 8.000000 | 17.000000 | 18.000000 | |
평균 | 104.262500 | 58.883333 | 66.113636 | 61.776923 | 68.091667 | 56.900000 | 72.566667 | 61.4000000 | 69.2000000 | 50.4000000 | 74.460000 | 57.387500 | 63.670588 | 55.477778 | ||
표준편차 | 173.489050 | 11.447849 | 15.825425 | 11.747919 | 14.052446 | 7.043065 | 8.393053 | 19.6575685 | 0.1414214 | 17.230695 | 12.218538 | 12.500138 | 8.658933 | |||
16 | 개수 | 15.000000 | 14.000000 | 32.000000 | 24.000000 | 23.000000 | 21.000000 | 4.000000 | 2.0000000 | 7.0000000 | 3.0000000 | 16.000000 | 7.000000 | 11.000000 | 19.000000 | |
평균 | 66.786667 | 56.207143 | 73.221875 | 57.675000 | 65.821739 | 58.652381 | 60.875000 | 56.7500000 | 76.3142857 | 62.1333333 | 66.168750 | 55.571429 | 67.372727 | 54.394737 | ||
표준편차 | 9.549336 | 8.167804 | 13.522806 | 7.253979 | 9.863153 | 12.105933 | 4.680011 | 5.1618795 | 9.4735471 | 11.6423079 | 9.440602 | 9.224734 | 9.252361 | 6.117504 | ||
17 | 개수 | 11.000000 | 15.000000 | 26.000000 | 19.000000 | 30.000000 | 17.000000 | 5.000000 | 3.0000000 | 10.0000000 | 6.0000000 | 11.000000 | 8.000000 | 17.000000 | 14.000000 | |
평균 | 77.209091 | 62.966667 | 67.400000 | 55.252632 | 71.206667 | 61.223529 | 71.560000 | 56.7000000 | 86.4800000 | 55.2500000 | 70.890909 | 61.362500 | 72.188235 | 57.064286 | ||
표준편차 | 9.333215 | 13.193487 | 12.206883 | 13.886499 | 21.510125 | 16.329671 | 10.260019 | 13.3461605 | 25.3946101 | 4.4021586 | 13.501293 | 14.413975 | 11.797186 | 15.334908 | ||
18 | 개수 | 11.000000 | 6.000000 | 14.000000 | 7.000000 | 5.000000 | 5.000000 | 4.000000 | 2.0000000 | 6.0000000 | 3.0000000 | 14.000000 | 11.000000 | 15.000000 | 12.000000 | |
평균 | 67.736364 | 61.916667 | 73.685714 | 58.014286 | 76.060000 | 63.880000 | 76.500000 | 54.3000000 | 80.5333333 | 55.5333333 | 81.914286 | 56.309091 | 71.980000 | 51.760000 | ||
표준편차 | 14.405573 | 16.521794 | 16.877015 | 9.313866 | 22.125845 | 10.742998 | 8.869047 | 4.3840620 | 18.3988768 | 6.5041013 | 14.448788 | 8.559843 | 15.796347 | 7.470178 |
<- table_function_general(tab3, 2)
mytable3 mytable3
ITEM | TEST | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SEX | AGE | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | 개수 | 평균 | 표준편차 | |
ITEM_F001 | 남성 | 13 | 16 | 162.35000 | 7.448937 | 20 | 164.71500 | 6.895328 | 26 | 164.89231 | 8.639024 | 1 | 182.80000 | 2 | 159.40000 | 6.2225397 | 3 | 165.26667 | 2.663331 | 11 | 165.60909 | 9.177304 | |
14 | 16 | 165.45625 | 5.399873 | 17 | 168.50588 | 5.318067 | 32 | 167.60313 | 6.567539 | 3 | 169.43333 | 4.3096790 | 2 | 170.60000 | 11.4551299 | 7 | 171.71429 | 11.317159 | 18 | 168.38889 | 7.085602 | ||
15 | 16 | 269.78125 | 397.692213 | 22 | 170.97727 | 6.552058 | 24 | 173.60000 | 5.362592 | 3 | 170.90000 | 4.6227697 | 2 | 169.70000 | 6.6468037 | 15 | 173.38000 | 4.947900 | 17 | 174.18824 | 7.105005 | ||
16 | 15 | 173.20000 | 7.156915 | 32 | 173.03125 | 4.476421 | 23 | 173.53913 | 6.486751 | 4 | 170.82500 | 6.4391381 | 7 | 175.34286 | 2.8692956 | 16 | 174.03125 | 5.888488 | 11 | 171.58182 | 5.568989 | ||
17 | 11 | 175.00000 | 4.850979 | 26 | 173.45000 | 4.888374 | 30 | 173.57333 | 6.267262 | 5 | 174.26000 | 4.4964430 | 10 | 173.14000 | 6.7641539 | 11 | 174.98182 | 3.136819 | 17 | 174.35294 | 8.408412 | ||
18 | 11 | 174.52727 | 5.833197 | 14 | 174.62857 | 5.844054 | 5 | 171.58000 | 3.834319 | 4 | 169.32500 | 3.7187588 | 6 | 176.53333 | 2.4459490 | 14 | 176.55714 | 5.852772 | 15 | 171.24667 | 6.460856 | ||
여성 | 13 | 17 | 157.28824 | 7.663214 | 11 | 156.29091 | 5.826054 | 16 | 156.49375 | 3.423150 | 2 | 158.90000 | 4.9497475 | 5 | 157.36000 | 1.9060430 | 10 | 160.37000 | 4.903298 | 13 | 159.55385 | 8.704751 | |
14 | 13 | 159.90000 | 7.355723 | 16 | 159.35000 | 4.665047 | 15 | 161.04000 | 4.529869 | 2 | 155.60000 | 7.7781746 | 4 | 158.32500 | 5.3080913 | 8 | 161.87500 | 4.987341 | 8 | 158.96250 | 6.857100 | ||
15 | 18 | 162.31667 | 5.818353 | 13 | 162.40000 | 6.858450 | 22 | 160.62273 | 5.114678 | 2 | 159.95000 | 3.1819805 | 1 | 162.00000 | 8 | 160.70000 | 3.706751 | 18 | 160.38333 | 3.873021 | |||
16 | 14 | 159.31429 | 5.439154 | 24 | 160.92083 | 5.050095 | 21 | 159.68095 | 5.956309 | 2 | 158.65000 | 0.4949747 | 3 | 165.06667 | 0.8504901 | 7 | 159.14286 | 7.628424 | 19 | 161.43684 | 4.344883 | ||
17 | 15 | 160.96000 | 4.036760 | 19 | 161.98421 | 3.481102 | 17 | 159.34706 | 6.197491 | 3 | 161.00000 | 1.5620499 | 6 | 158.73333 | 3.7494889 | 8 | 162.43750 | 4.955210 | 14 | 162.38571 | 5.063574 | ||
18 | 6 | 161.15000 | 6.338060 | 7 | 160.47143 | 6.273945 | 5 | 163.08000 | 4.930213 | 2 | 164.50000 | 5.6568542 | 3 | 156.20000 | 3.5930488 | 11 | 162.87273 | 7.072778 | 12 | 160.39167 | 8.397668 | ||
ITEM_F002 | 남성 | 13 | 16 | 56.94375 | 15.884289 | 20 | 64.26500 | 15.545562 | 26 | 63.73077 | 16.570716 | 1 | 97.50000 | 2 | 72.85000 | 36.4159992 | 3 | 60.93333 | 9.154416 | 11 | 64.41818 | 20.188453 | |
14 | 16 | 59.13125 | 11.659086 | 17 | 63.07647 | 14.848086 | 32 | 62.96875 | 13.394256 | 3 | 63.06667 | 8.2778822 | 2 | 91.00000 | 21.9203102 | 7 | 72.95714 | 26.349058 | 18 | 63.50556 | 21.315873 | ||
15 | 16 | 104.26250 | 173.489050 | 22 | 66.11364 | 15.825425 | 24 | 68.09167 | 14.052446 | 3 | 72.56667 | 8.3930527 | 2 | 69.20000 | 0.1414214 | 15 | 74.46000 | 17.230695 | 17 | 63.67059 | 12.500138 | ||
16 | 15 | 66.78667 | 9.549336 | 32 | 73.22187 | 13.522806 | 23 | 65.82174 | 9.863153 | 4 | 60.87500 | 4.6800107 | 7 | 76.31429 | 9.4735471 | 16 | 66.16875 | 9.440602 | 11 | 67.37273 | 9.252361 | ||
17 | 11 | 77.20909 | 9.333215 | 26 | 67.40000 | 12.206883 | 30 | 71.20667 | 21.510125 | 5 | 71.56000 | 10.2600195 | 10 | 86.48000 | 25.3946101 | 11 | 70.89091 | 13.501293 | 17 | 72.18824 | 11.797186 | ||
18 | 11 | 67.73636 | 14.405573 | 14 | 73.68571 | 16.877015 | 5 | 76.06000 | 22.125845 | 4 | 76.50000 | 8.8690473 | 6 | 80.53333 | 18.3988768 | 14 | 81.91429 | 14.448788 | 15 | 71.98000 | 15.796347 | ||
여성 | 13 | 17 | 52.73529 | 13.056413 | 11 | 51.02727 | 12.546481 | 16 | 49.35000 | 7.319381 | 2 | 53.00000 | 4.2426407 | 5 | 50.38000 | 6.3762842 | 10 | 59.63000 | 15.168831 | 13 | 55.63846 | 15.079597 | |
14 | 13 | 53.63846 | 16.585965 | 16 | 52.63750 | 5.889298 | 15 | 58.50000 | 14.159600 | 2 | 62.65000 | 2.0506097 | 4 | 58.05000 | 8.8925062 | 8 | 57.45000 | 11.006751 | 8 | 55.66250 | 15.383752 | ||
15 | 18 | 58.88333 | 11.447849 | 13 | 61.77692 | 11.747919 | 22 | 56.90000 | 7.043065 | 2 | 61.40000 | 19.6575685 | 1 | 50.40000 | 8 | 57.38750 | 12.218538 | 18 | 55.47778 | 8.658933 | |||
16 | 14 | 56.20714 | 8.167804 | 24 | 57.67500 | 7.253979 | 21 | 58.65238 | 12.105933 | 2 | 56.75000 | 5.1618795 | 3 | 62.13333 | 11.6423079 | 7 | 55.57143 | 9.224734 | 19 | 54.39474 | 6.117504 | ||
17 | 15 | 62.96667 | 13.193487 | 19 | 55.25263 | 13.886499 | 17 | 61.22353 | 16.329671 | 3 | 56.70000 | 13.3461605 | 6 | 55.25000 | 4.4021586 | 8 | 61.36250 | 14.413975 | 14 | 57.06429 | 15.334908 | ||
18 | 6 | 61.91667 | 16.521794 | 7 | 58.01429 | 9.313866 | 5 | 63.88000 | 10.742998 | 2 | 54.30000 | 4.3840620 | 3 | 55.53333 | 6.5041013 | 11 | 56.30909 | 8.559843 | 12 | 51.76000 | 7.470178 |
HWP
)로 내보내기이제 flextable
로 출력한 표를 아래한글로 내보내는 과정을 확인해보자.
아래한글은 우리나라에서만 쓰이는 문서프로그램이기에 flextable
에서 직접 아래한글로 표를 내보내는 것은 없다.
그렇기에 워드(WORD
)로 내보낸 표를 아래한글로 가져오면 된다.
가장 간단한 방법으로 워드로 내보낸 표를 복사 붙여넣기를 통해 아래한글로 내보낼 수 있다.
mytable1
를 워드(WORD
)로 내보내는 코드는 다음과 같다.
# 새로운 Word 문서 객체 생성
<- read_docx()
my_doc
# 본문(body)에 flextable 삽입
<- body_add_flextable(my_doc, mytable1)
my_doc
# docx 파일로 내보내기
print(my_doc, target = "my_flextable.docx")
코드를 실행한 다음 R작업폴더에 들어가 보면 내가 지정한 my_flextable.docx
파일이 생긴것을 알수 있다.
파일에 들어가보면 flextable
로 만든 표가 있는 것을 확인 할수 있다.
그리고 이 표를 복사해서 아래한글에 붙여넣기를 하면 아래한글로 표를 옮길수 있다.