3.1 데이터 테이블

  1. 정적인 표인 경우에는 knitr 패키지에 있는 kable 함수를 쓰면 출력 문서의 유형에 잘 맞춰진 보기 좋은 표를 출력할 수 있습니다.
knitr::kable(head(iris), caption = "Tabuler data printed using kable")
Tabuler data printed using kable
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa


  1. DT 패키지는 자바스크립트 라이브러리를 통해서 인터랙티브 표를 만드는 기능을 제공합니다.
library(DT)
data(diamonds, package='ggplot2')
datatable(head(diamonds, 100))


  1. 수 많은 확장 기능, 플러그인,, 옵션이 있고 이는 DT 패키지에 구현이 되어 있습니다. 표를 더 보기 좋게 하기 위해서 rownames를 표시하지 않게 할 수 있고 filter 인자를 사용해서 개별 열에 대한 검색 기능을 부여할 수 있고 scroller 확장 기능을 통해서 더 나은 수직 스크롤링 기능을 부여할 수 있습니다. scrollX를 사용한 수평 스크로링 기능, dom을 통해서 표시되는 것을 표자체, 표에 대한 정보 등을 선택할 수 있습니다.
datatable(head(diamonds), 100, rownames = FALSE, extension = 'Scroller',
          filter = 'top', options = list(dom = 'tiS', scrollX = TRUE, scrollY = 400, 
                                         scrollCollapse = TRUE))


  1. datatable 객체는 파이프 기능을 통해서 출력을 커스터마이징 하는 포맷팅 함수로 전달될 수 있습니다. 다음은 price 열을 가까운 자연수로 반올림하고 cut 열 값에 따라 행들의 색을 부여하는 것입니다.
datatable(head(diamonds), 100, rownames = FALSE, extension = 'Scroller',
          filter = 'top', options = list(dom = 'tiS', scrollX = TRUE, scrollY = 400, 
                                         scrollCollapse = TRUE)) %>% 
    formatCurrency('price', digits=0) %>% 
    formatStyle(columns = 'cut', valueColumns = 'cut', target = 'row',
                backgroundColor = styleEqual(levels = c("Good", "Ideal"), values = c("red", "green")))