본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬
데이터 시각화

21년 고등교육기관 정보 요약 - gt 패키지를 이용한 표 꾸미기 in R

by 아참형인간 2021. 12. 8.
gt1.knit

gt 패키지로 데이터 테이블 만들기 - 2

앞선 포스트에서는 gt 패키지를 사용해 표안의 데이터 형태를 잡는 것까지 해보았다. 그럼 이번에는 표를 예쁘게 꾸며보는 작업을 해보겠다. 하나 미리 말해둘 것은 필자가 미적감각이 없어 예쁜 표가 나올지는 모르겠다. 예쁜 표를 그리는 방법을 설명할테니 진짜 예쁜 표는 직접 만들어야 할 것이다. .

tab_option() 을 이용하여 전체 표 꾸미기

표를 꾸밀때는 선 형태, 선 색깔, 셀 배경색, 글자 폰트, 글자 크기 등 여러가지 워드프로세서에서나 가능할 만한 여러가지 요소를 직접 설정할 수 있어야 한다. gt 패키지에서는 tab_option() 함수의 다양한 매개 변수를 설정함에 따라 이들 요소들을 직접 설정할 수 있다. 다만 tab_option()에서 제공하는 매개 변수들이 너무 많아서 본 포스트에서 다 설명할 수 없다. tab_option()의 매개변수는 gttab_option() 매뉴얼을 참조하라.

gt.table8 <- gt.table7 |>
  tab_options(
    ## 행 그룹 요약 행의 배경색 설정
    summary_row.background.color = "lightblue",
    ## 전체 요약 행의 배경색 설정
    grand_summary_row.background.color = "lightgreen",
    ## 구분(Stub) 행의 헤더 외곽선 스타일 설정
    stub.border.style = 'solid', 
    ## 구분(Stub) 행의 배경색 설정
    stub.background.color = '#edf8fb',
    ## 행 그룹 이름 표현 셀 배경색 설정
    row_group.background.color = '#ffffcc',
    ## 열 제목(Heading) 배경색 설정
    heading.background.color = '#c6dbef',
    ## 표 몸체(Body) 수평선 스타일 설정
    table_body.hlines.style = 'dashed', 
    ## 표 몸체(Body) 수직선 색깔 설정 
    table_body.vlines.color = 'blue',
    ## 표 몸체(BOdy) 수직선 스타일 설정
    table_body.vlines.style = 'dashed'
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1

tab_style() 을 이용하여 셀 꾸미기

tab_option()에서 많은 설정값을 제공하지만 표를 세부적으로 설정하기가 다소 어려울 것이다. 필자도 전체적으로 설정할 필요가 있을 때는 tab_option()을 사용하지만 생각보다 설정이 어려워 셀 단위로 설정하는 tab_style()을 사용한다. tab_style()은 표에서 설정할 각 부분을 먼저 선택하고 이 부분에 대한 스타일을 설정함으로써 표를 꾸밀 수 있다. 이 함수에서는 셀 위치(locations)와 셀 스타일(style)을 지정하는 두가지 매개변수가 필요하다. 이 매개변수들을 설정할 때는 도움 함수(helper function)1을 사용하는데 tab_style() 의 사용법은 다음과 같다.

tab_style(data, locations, style)

  • data : 표 그리기에 사용할 gt 객체

  • locations : 셀의 위치를 설정하기 위한 헬퍼함수

  • style : 셀의 속성을 설정하기 위한 도움 함수, 2개 이상의 도움 함수를 사용해야 할 경우는 list로 만들어준다.

tab_style() 의 위치(locations)를 설정하는데 사용하는 도움 함수는 다음과 같다.

도움함수명 설명 매개변수
cell_fill() 셀 안을 채우는 색깔을 지정하는 함수 color, alpha
cell_text() 셀 안의 문자 형태(색깔, 폰트, 크기, 스타일, 굵기)를 지정하는 함수 color, font, size, style, weight , align, indent
cell_borders() 셀의 테두리 설정 sides, color, style, weight

셀의 위치(locations)를 설정할 때 사용하는 도움 함수는 다음과 같다.

도움 함수 설명 매개변수
cells_title() 표 제목 셀 선택 groups
cells_stubhead() 구분(Stub) 열 제목셀 선택
cells_column_spanners() 열 이름 묶음(Spanner) 셀 선택 spanners
cells_column_labels() 열 이름 셀 선택 columns
cells_row_groups() 행 그룹 셀 선택 groups
cells_stub() 구분 셀 선택 rows
cells_body() 표 몸체(Body) 셀 선택 columns, rows
cells_summary() 요약 셀 선택 groups, columns, rows
cells_grand_summary() 전체 요약 셀 선택 columns, rows
cells_stub_summary() 요약 구분 셀 선택 groups, rows
cells_stub_grand_summary() 전체 요약 구분 셀 선택 rows
cells_footnotes() 각주 셀 선택
cells_source_notes() 출처 셀 선택

그러면 이제 차근차근 표를 꾸며보자. 먼저 표 제목을 굵게하고 크기를 20로 설정하는 코드는 다음과 같다.

gt.table9 <- gt.table8 |>
  tab_style(
    locations = cells_title(groups = "title"),
    style     = list(
      cell_text(weight = "bold", size = px(20))
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1


이번에는 열 그룹(Spanner) 이름인 ‘합계’와 ’평균’ 문자 색과 크기를 설정하겠다.

gt.table10 <- gt.table9 |>
  tab_style(
    locations = cells_column_spanners(spanners = "합계"),
    style     = list(
      cell_text(weight = "bold", size = px(12), color = 'blue')
    )
  ) %>% 
  tab_style(
    locations = cells_column_spanners(spanners = "평균"),
    style     = list(
      cell_text(weight = "bold",color = "red", size = px(12))
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1


이번에는 열 이름의 스타일을 설정하겠다. 열의 배경색을 회색으로, 열의 글자색을 흰색으로 설정하는데 필요한 함수는 cell_text()cell_fill()의 두가지가 필요하다. 따라서 이 두가지 함수를 list()로 묶어 주어야 한다. cells_column_label()columns 매개변수 설정시에 특정 열의 이름을 설정하여 특정 열을 선택할 수 있고 다수의 열을 선택하려면 열 이름이나 열 번호를 vector로 만들어 설정할 수 있다. 열 전체를 선택해야 할때는 everything()을 사용할 수 있다.

gt.table11 <- gt.table10 |> 
  tab_style(
    locations = cells_column_labels(columns = everything()),
    style     = list(
      cell_text(color = "white"), 
      cell_fill(color = 'grey50')
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1


각각의 행 그룹 이름셀이 노란색으로 표현되어 있는데 위에서 설정한 열 이름 셀의 속성과 유사한 속성으로 바꾸어 주겠다. 행 그룹 이름 셀의 속성을 설정하는 함수는 cells_row_group()이다. 이 함수에서 groups 매개변수를 사용하여 설정하고자 하는 행 그룹을 지정할 수 있는데 전체 행 그룹 이름 셀을 선택하려면 everything()을 사용한다.

gt.table12 <- gt.table11 |> 
  tab_style(
    locations = cells_row_groups(groups = everything()),
    style     = list(
      cell_text(color = "grey25", size = 24, align = 'center'), 
      cell_fill(color = 'grey75')
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1


이번에는 구분 셀(Stub)을 설정하도록 하겠다. 현재 그려진 표에는 구분(Stub) 셀, 요약 구분 셀, 전체 요약 구분 셀의 세가지 구분 셀이 있다. 이들 구분 셀들을 모두 굵은 글씨에 중간 정렬로 설정하도록 한다. 구분 셀을 선택하는 함수는 cells_stub(), 요약 구분 셀을 선택하는 함수는 cells_stub_summary() , 전체 요약구분 셀을 선택하는 함수는 cells_grand_stub_summary() 이다. 다음과 같이 설정이 가능하다.

gt.table13 <- gt.table12 |> 
  tab_style(
    locations = cells_stub(rows = everything()),
    style     = list(
      cell_text(align = 'center', weight = 'bold')
    )
  ) |>
  tab_style(
    locations = cells_stub_summary(rows = everything()),
    style     = list(
      cell_text(align = 'center', weight = 'bold')
    )
  ) |>
  tab_style(
    locations = cells_stub_grand_summary(rows = everything()),
    style     = list(
      cell_text(align = 'center', weight = 'bold')
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1


이번에는 실제 데이터들이 표현되는 표 몸체(Body)를 설정한다. 표 몸체는 표 헤더 셀(Header), 표 구분 셀(Stub)를 제외한 표 내부의 전체 셀을 의미한다. 경우에 따라 특정 열을 선택할 수 있고 특정 열만, 특정 행만을 선택할 수도 있으며 전체 표 몸체 셀을 선택할 수도 있다. 여기서는 합계쪽 데이터는 파란색 글씨에 파란색 선으로 표현하고 평균쪽 데이터는 붉은색 글씨에 붉은색 선으로 표현한다. 코드는 다음과 같다.

gt.table14 <- gt.table13 |>
  tab_style(
    locations = cells_body(rows = everything(), columns = c(9:14)),
    style     = list(
      cell_borders(color = 'red', style = 'dotted')
    )
  ) |>
  tab_style(
    locations = cells_body(rows = everything(), columns = c(3:8)),
    style     = list(
      cell_borders(color = 'blue', style = 'dotted')
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1


앞서 표 몸체를 설정한 것과 같이 요약 셀과 전체 요약 셀도 유사하게 설정해보도록 하겠다. 하지만 요약 셀은 배경색을 푸른색과 붉은색 글자색으로 설정하고 전체 요약 셀은 셀 배경을 푸른색과 붉은색으로 채우고 글자색을 하얀색으로 굵게 설정하도록 하겠다.2

gt.table15 <- gt.table14 |> 
  tab_style(
    style     = list(
      cell_borders(color = 'blue', style = 'dotted'), 
      cell_text(color = 'blue')
    ), 
    locations = cells_summary(rows = 1, 
                              columns = c(3:8), 
                              group = everything()
    )
  ) |> 
  tab_style(
    style     = list(
      cell_borders(color = 'blue', style = 'dotted'), 
      cell_text(color = 'blue')
    ), 
    locations = cells_summary(rows = 2, 
                              columns = c(3:8), 
                              group = everything()
    )
  ) |> 
  tab_style(
    style     = list(
      cell_borders(color = 'red', style = 'dotted'), 
      cell_text(color = 'red')
    ), 
    locations = cells_summary(rows = 1, 
                              columns = c(9:14), 
                              group = everything()
    )
  ) |> 
  tab_style(
    style     = list(
      cell_borders(color = 'red', style = 'dotted'), 
      cell_text(color = 'red')
    ), 
    locations = cells_summary(rows = 2, 
                              columns = c(9:14), 
                              group = everything()
    )
  ) |> 
  tab_style(
    style     = list(
      cell_text(color = 'white', weight = 'bold'), 
      cell_fill(color = 'blue', alpha = 0.5)
    ), 
    locations = cells_grand_summary(rows = 1, 
                              columns = c(3:8)
    )
  ) |> 
  tab_style(
    style     = list(
      cell_text(color = 'white', weight = 'bold'), 
      cell_fill(color = 'blue', alpha = 0.5)
    ), 
    locations = cells_grand_summary(rows = 2, 
                              columns = c(3:8)
    )
  ) |> 
  tab_style(
    style     = list(
      cell_text(color = 'white', weight = 'bold'), 
      cell_fill(color = 'red', alpha = 0.5)
    ), 
    locations = cells_grand_summary(rows = 1, 
                              columns = c(9:14)
    )
  ) |> 
  tab_style(
    style     = list(
      cell_text(color = 'white', weight = 'bold'), 
      cell_fill(color = 'red', alpha = 0.5)
    ), 
    locations = cells_grand_summary(rows = 2, 
                              columns = c(9:14)
    )
  )
고등교육기관 데이터
2021년 전체 고등교육기관 대상
합계 평균
학과수 지원자 입학자 재적생 재학생 휴학생 학과수 지원자 입학자 재적생 재학생 휴학생
전문대학과정
전문대학(2년제) 2,546 473,154 70,200 238,266 162,729 75,386 1.4 257.8 38.3 129.8 88.7 41.1
전문대학(3년제) 3,095 603,197 87,333 304,435 213,105 91,162 1.7 326.9 47.3 165.0 115.5 49.4
전문대학(4년제) 317 63,559 9,174 33,340 24,242 9,077 1.1 227.8 32.9 119.5 86.9 32.5
기능대학 263 19,102 7,565 23,910 14,860 9,050 1.5 107.9 42.7 135.1 84.0 51.1
합계 6,221 1,159,012 174,272 599,951 414,936 184,675 5.7 920.5 161.2 549.4 375.0 174.2
평균값 1,555 289,753 43,568 149,988 103,734 46,169 1.4 230.1 40.3 137.4 93.8 43.5
대학과정
대학교 12,028 2,635,154 329,306 1,938,254 1,415,162 504,165 1.5 326.3 40.8 240.0 175.3 62.4
교육대학 140 15,805 3,864 15,409 15,045 364 2.3 263.4 64.4 256.8 250.8 6.1
산업대학 251 22,128 2,379 14,539 11,076 3,374 1.0 90.3 9.7 59.3 45.2 13.8
사이버대학(대학) 357 51,840 34,279 135,155 119,995 15,160 0.8 120.8 79.9 315.0 279.7 35.3
합계 12,776 2,724,927 369,828 2,103,357 1,561,278 523,063 5.7 800.9 194.8 871.2 750.9 117.6
평균값 3,194 681,232 92,457 525,839 390,320 130,766 1.4 200.2 48.7 217.8 187.7 29.4
대학원과정
일반대학원 10,076 121,226 69,928 161,987 143,965 18,022 2.7 31.9 18.4 42.6 37.9 4.7
특수대학원 4,351 84,377 45,448 124,912 107,537 17,375 1.7 32.1 17.3 47.5 40.9 6.6
전문대학원 1,088 39,141 15,556 40,516 36,108 4,408 1.5 55.5 22.1 57.5 51.2 6.3
합계 15,515 244,744 130,932 327,415 287,610 39,805 5.8 119.5 57.7 147.6 130.0 17.6
평균값 5,172 81,581 43,644 109,138 95,870 13,268 1.9 39.8 19.2 49.2 43.3 5.9
합계 34,512 4,128,683 675,032 3,030,723 2,263,824 747,543 17.2 1,840.9 413.8 1,568.3 1,255.9 309.4
평균값 3,137 375,335 61,367 275,520 205,802 67,958 1.6 167.4 37.6 142.6 114.2 28.1


지금까지 gt 객체로 표현되는 표를 꾸미는 과정을 살펴보았다. 사실 지금까지는 MS-Word, MS-Excel이나 아래한글에서 설정이 가능하다. 솔직히 워드프로세서나 스프레드 시트 프로그램에서 꾸미는 것이 더 편할 수 도 있다. 하지만 이전 포스트에서 설명한 바와 같이 이런 표를 몇 개 연속적으로 그려야 할 때나 데이터가 업데이트되어 다시 그려야 할 때는 워드프로세서나 스프레드 시트와는 비교할 수 없을 정도로 편리할 것이다. 그리고 워드프로세스나 스프레드 시트보다 더 파워풀한 기능을 다음번 포스트에서 설명하도록 하겠다.

Coming Soon..


  1. 특정 함수안에서만 사용이 되는 함수로 해당 함수의 세부 기능을 수행하기 위해 사용되는 함수를 말한다.↩︎

  2. cells_summary()cells_grand_summaryrowscolumns 매개변수에서 everythig() 이 정상적으로 실행되지 않는데 gt 패키지의 오류가 있는 것으로 생각된다.↩︎

댓글