slickR
slick 자바스크립트를 htmlwidget
으로 변환시켜 R로 가져와서 사용하기 편하게 구현된 것이 slickR 팩키지다.
slickR with PDFs 내용을 참조하여 [1] 논문을 회전목마로 신나게 돌려봅시다.
%synch%
와 settings()
함수를 연결하면 근사한 발표자료 생성이 가능하겠습니다.
먼저 캡차 이미지를 데이터프레임으로 만든다.
library(glue)
file_names <- list.files("data/captcha_dataset/")
captcha_labels <- str_extract(file_names, "[\\w\\d]+?(?=\\.)")
captcha_df <- tibble(label = captcha_labels,
captcha = glue("data/captcha_dataset/{file_names}"),
score = runif(1070, min = 0, max = 1))
captcha_df
# A tibble: 1,070 x 3
label captcha score
<chr> <glue> <dbl>
1 226md data/captcha_dataset/226md.png 0.955
2 22d5n data/captcha_dataset/22d5n.png 0.836
3 2356g data/captcha_dataset/2356g.png 0.863
4 23mdg data/captcha_dataset/23mdg.png 0.415
5 23n88 data/captcha_dataset/23n88.png 0.799
6 243mm data/captcha_dataset/243mm.png 0.126
7 244e2 data/captcha_dataset/244e2.png 0.129
8 245y5 data/captcha_dataset/245y5.png 0.834
9 24f6w data/captcha_dataset/24f6w.png 0.423
10 24pew data/captcha_dataset/24pew.png 0.784
# … with 1,060 more rows
앞쪽에 자바스크립트 함수를 정의하고 캡챠 이미지를 회전목마에 태위기 위한 환경설정 작업을 수행한다. 그리고 나서 정답 라벨과 캡챠이미지를 살펴볼 수 있도록 준비한다.
captcha_num <- htmlwidgets::JS("function(slick,index) {
return '<a>'+(index+1)+'</a>';
}")
captcha_opts <- settings(
dots = TRUE,
initialSlide = 0,
slidesToShow = 10,
slidesToScroll = 10,
focusOnSelect = TRUE,
customPaging = captcha_num,
arrows = FALSE)
slickR(obj = captcha_df$captcha, height = 100, width = "100%") %synch%
( slickR(captcha_df$label, slideType = 'p') + captcha_opts )