한국 R 컨퍼런스 발표자를 직사각형 데이터로 만들어서 프로필 사진을 담을 수 있는 표를 제작해보자. gt
팩키지를 사용해서 간단하게 정적 표를 제작한다. 표에 국기를 담기 위해 FAMFAMFAM - Flag Icons를 다운로드 받아 ISO2 국가 코드에 맞춰 국기가 표시되도록 준비한다.
library(tidyverse)
library(readxl)
library(gt)
read_excel("data/rconf/발표자_대쉬보드.xlsx")
speakers <-
%>%
speakers gt()
순 | 구분 | 발표자명 | 소속 | 발표제목 | 국가 | 파일명 |
---|---|---|---|---|---|---|
1 | 실시간/녹화 | 이광춘 | R사용자회 | 결국 문서는 커뮤니케이션이다 | 한국 | kwangchun_lee.jpg |
2 | 실시간/녹화 | 어수행 | Stealth AI StartUp | 수요예측? Forecasting? 우리는 답을 찾을 것이다. | 한국 | soohaeng_eo.jpeg |
3 | 실시간/녹화 | 최재성 | 성균관대 | 사회과학 연구자의 R 동행기 | 한국 | jaesung_choi.jpg |
4 | 실시간/녹화 | 박상훈 | University of South Carolina | 재현가능한 연구를 위한 노력: R과 정치학의 만남 | 미국 | sanghoon_park.jpg |
5 | 실시간/녹화 | 이민호/김상현 | 데이터라이즈 | 프로덕션 수준의 리포트 자동화 시스템 만들기 | 한국 | datarize.gif |
6 | 실시간/녹화 | 이준혁 | Seegene | Infinite Shiny World | 한국 | joonhyuk_lee.jpg |
7 | 실시간/녹화 | 문건웅 | 가톨릭의대 | Reproducible Research with Table | 한국 | keonwoong_moon.jpg |
8 | 실시간/녹화 | 이혜선 | Postech | 데이터사이언스와 오픈소스 | 한국 | hyeseon_lee.jpg |
9 | 실시간/녹화 | 이남신 | 오피지지 | 실제 기업 서비스에서 R 활용하기 | 한국 | namshin_lee.jpeg |
한국 R 컨퍼런스 발표자중 일부 발표자는 한국이 아니라 외국에서 발표를 해주시기로 했다. 이를 국기를 통해 2020년 도쿄 올림픽 기념으로 표에 담아보자.
%>%
speakers mutate(iso2 = ifelse(국가 == "한국", "kr", "us")) %>%
mutate(flag_URL = glue::glue('data/rconf/worldflags/{iso2}.png')) %>%
select(순, flag_URL, 발표자명, 소속) %>%
gt() %>%
gt::text_transform(
# Apply a function to a column
locations = cells_body(vars(flag_URL)),
fn = function(x) {
# Return an image of set dimensions
web_image(
url = x,
height = 12
)
}%>%
) # Hide column header flag_URL and reduce width
cols_width(vars(flag_URL) ~ px(50)) %>%
cols_label(flag_URL = "")
순 | 발표자명 | 소속 | |
---|---|---|---|
1 | 이광춘 | R사용자회 | |
2 | 어수행 | Stealth AI StartUp | |
3 | 최재성 | 성균관대 | |
4 | 박상훈 | University of South Carolina | |
5 | 이민호/김상현 | 데이터라이즈 | |
6 | 이준혁 | Seegene | |
7 | 문건웅 | 가톨릭의대 | |
8 | 이혜선 | Postech | |
9 | 이남신 | 오피지지 |
프로필 사진을 표에 담아보자. 앞에서 국기를 표에 담은 것과 동일한 방식으로 표현한다. 로컬 파일에 있는 발표자 사진을 gt
팩키지 web_image()
함수를 사용해서 처리한다.
%>%
speakers mutate(figure = glue::glue('data/rconf/{파일명}')) %>%
select(발표자명, 소속, figure) %>%
gt() %>%
text_transform(
locations = cells_body(vars(figure)),
fn = function(x) {
web_image(
url = x,
height = 50
)
} )
발표자명 | 소속 | figure |
---|---|---|
이광춘 | R사용자회 | |
어수행 | Stealth AI StartUp | |
최재성 | 성균관대 | |
박상훈 | University of South Carolina | |
이민호/김상현 | 데이터라이즈 | |
이준혁 | Seegene | |
문건웅 | 가톨릭의대 | |
이혜선 | Postech | |
이남신 | 오피지지 |
프로필 사진을 표에 담아보자. 앞에서 국기를 표에 담은 것과 동일한 방식으로 표현한다. 로컬 파일에 있는 발표자 사진을 gt
팩키지 web_image()
함수를 사용해서 처리한다.
speakers %>%
speakers_tbl <- ## ISO2 국기 -----------------------------------------
mutate(iso2 = ifelse(국가 == "한국", "kr", "us")) %>%
mutate(flag_URL = glue::glue('data/rconf/worldflags/{iso2}.png')) %>%
## 발표자 사진 -----------------------------------------
mutate(figure = glue::glue('data/rconf/{파일명}')) %>%
## 표에 표시할 칼럼 -----------------------------------------
select(순, flag_URL, figure, 발표자명, 소속, 발표제목) %>%
## ISO2 국기 표에 삽입 -----------------------------------------
gt() %>%
gt::text_transform(
# Apply a function to a column
locations = cells_body(columns = c(flag_URL)),
fn = function(x) {
# Return an image of set dimensions
web_image(
url = x,
height = 12
)
}%>%
) # Hide column header flag_URL and reduce width
cols_width(columns = c(flag_URL) ~ px(50)) %>%
cols_label(flag_URL = "") %>%
## 발표자 사진 표에 삽입 -----------------------------------------
text_transform(
locations = cells_body(columns = c(figure)),
fn = function(x) {
web_image(
url = x,
height = 50
)
}%>%
) cols_width(columns = c(figure) ~ px(50)) %>%
cols_label(figure = "")
speakers_tbl
순 | 발표자명 | 소속 | 발표제목 | ||
---|---|---|---|---|---|
1 | 이광춘 | R사용자회 | 결국 문서는 커뮤니케이션이다 | ||
2 | 어수행 | Stealth AI StartUp | 수요예측? Forecasting? 우리는 답을 찾을 것이다. | ||
3 | 최재성 | 성균관대 | 사회과학 연구자의 R 동행기 | ||
4 | 박상훈 | University of South Carolina | 재현가능한 연구를 위한 노력: R과 정치학의 만남 | ||
5 | 이민호/김상현 | 데이터라이즈 | 프로덕션 수준의 리포트 자동화 시스템 만들기 | ||
6 | 이준혁 | Seegene | Infinite Shiny World | ||
7 | 문건웅 | 가톨릭의대 | Reproducible Research with Table | ||
8 | 이혜선 | Postech | 데이터사이언스와 오픈소스 | ||
9 | 이남신 | 오피지지 | 실제 기업 서비스에서 R 활용하기 |
마지막으로 표를 보기 좋게 외양을 가꿔보자.
%>%
speakers_tbl tab_header(
title = md("**☀ 한국 R 컨퍼런스 발표자 ☀**"),
subtitle = md("*NLP, 웹앱, 예측, 재현가능 과학, 산업현장, 사회과학 ...*")
%>%
) tab_source_note(
source_note = md("한국 R 컨퍼런스: <https://use-r.kr/>")
%>%
) tab_options(
heading.background.color = "#e8fc03",
heading.title.font.size = "32px",
column_labels.background.color = "#a5fc03",
column_labels.font.weight = "bold",
stub.background.color = "#bcbddc",
stub.font.weight = "bold"
%>%
) cols_align(
align = "center",
columns = everything()
)
☀ 한국 R 컨퍼런스 발표자 ☀ | |||||
---|---|---|---|---|---|
NLP, 웹앱, 예측, 재현가능 과학, 산업현장, 사회과학 ... | |||||
순 | 발표자명 | 소속 | 발표제목 | ||
1 | 이광춘 | R사용자회 | 결국 문서는 커뮤니케이션이다 | ||
2 | 어수행 | Stealth AI StartUp | 수요예측? Forecasting? 우리는 답을 찾을 것이다. | ||
3 | 최재성 | 성균관대 | 사회과학 연구자의 R 동행기 | ||
4 | 박상훈 | University of South Carolina | 재현가능한 연구를 위한 노력: R과 정치학의 만남 | ||
5 | 이민호/김상현 | 데이터라이즈 | 프로덕션 수준의 리포트 자동화 시스템 만들기 | ||
6 | 이준혁 | Seegene | Infinite Shiny World | ||
7 | 문건웅 | 가톨릭의대 | Reproducible Research with Table | ||
8 | 이혜선 | Postech | 데이터사이언스와 오픈소스 | ||
9 | 이남신 | 오피지지 | 실제 기업 서비스에서 R 활용하기 | ||
한국 R 컨퍼런스: https://use-r.kr/ |
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com