2.5 표
현재 표를 생성하는 가장 편리한 방법은 knitr::kable()
함수입니다. knitr에는 bookdown과 함께 작동하도록 하는 내부 트릭이 있으며 사용자는 이러한 구현의 세부 사항에 대해 알 필요가 없습니다. 이 섹션의 뒷부분에서 다른 패키지와 기능을 사용하는 방법에 대해 설명할 것입니다.
그림과 마찬가지로 캡션이 있는 표에도 번호가 매겨지고 참조될 수 있습니다. kable()
함수는 테이블 환경에 대한 라벨을 자동으로 생성합니다. 이 라벨은 접두사 tab :
과 청크 라벨입니다. 예를 들어, 라벨이 foo
인 코드 청크의 표 라벨은 tab:foo
가 되며 여전히 \@ref(label)
구문을 사용하여 표를 참조할 수 있습니다. 표 2.2은 간단한 예입니다.
::kable(
knitrhead(mtcars[, 1:8], 10), booktabs = TRUE,
caption = 'A table of the first 10 rows of the mtcars data.'
)
mpg | cyl | disp | hp | drat | wt | qsec | vs | |
---|---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.620 | 16.46 | 0 |
Mazda RX4 Wag | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.875 | 17.02 | 0 |
Datsun 710 | 22.8 | 4 | 108.0 | 93 | 3.85 | 2.320 | 18.61 | 1 |
Hornet 4 Drive | 21.4 | 6 | 258.0 | 110 | 3.08 | 3.215 | 19.44 | 1 |
Hornet Sportabout | 18.7 | 8 | 360.0 | 175 | 3.15 | 3.440 | 17.02 | 0 |
Valiant | 18.1 | 6 | 225.0 | 105 | 2.76 | 3.460 | 20.22 | 1 |
Duster 360 | 14.3 | 8 | 360.0 | 245 | 3.21 | 3.570 | 15.84 | 0 |
Merc 240D | 24.4 | 4 | 146.7 | 62 | 3.69 | 3.190 | 20.00 | 1 |
Merc 230 | 22.8 | 4 | 140.8 | 95 | 3.92 | 3.150 | 22.90 | 1 |
Merc 280 | 19.2 | 6 | 167.6 | 123 | 3.92 | 3.440 | 18.30 | 1 |
단일 테이블 환경에 여러 테이블을 배치하려면 데이터 개체(일반적으로 R의 데이터 프레임)를 목록으로 래핑합니다. 예는 표 2.3을 참조하세요. 이 기능은 HTML 및 PDF 출력에서만 사용할 수 있습니다.
::kable(
knitrlist(
head(iris[, 1:2], 3),
head(mtcars[, 1:3], 5)
),caption = 'A Tale of Two Tables.', booktabs = TRUE
)
|
|
표가 PDF에서 분리되는 것(floating)을 원치 않을 경우 여러 페이지에 걸쳐 표를 나눌 수 있는 LaTeX 패키지 longtable를 사용할 수 있습니다. longtable을 사용하려면 longtable = TRUE
를 kable()
에 전달하고 LaTeX 프리앰블 (섹션 4.1에서 LaTeX 프리앰블을 맞춤 설정하는 방법 참고)에 \usepackage{longtable}
을 포함해야 합니다. 물론 이것은 HTML의 테이블은 플로팅할 필요가 없기 때문에 HTML 출력과는 무관합니다.
::kable(
knitr1:55, ], longtable = TRUE, booktabs = TRUE,
iris[caption = 'A table generated by the longtable package.'
)
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 |
4.6 | 3.4 | 1.4 | 0.3 | setosa |
5.0 | 3.4 | 1.5 | 0.2 | setosa |
4.4 | 2.9 | 1.4 | 0.2 | setosa |
4.9 | 3.1 | 1.5 | 0.1 | setosa |
5.4 | 3.7 | 1.5 | 0.2 | setosa |
4.8 | 3.4 | 1.6 | 0.2 | setosa |
4.8 | 3.0 | 1.4 | 0.1 | setosa |
4.3 | 3.0 | 1.1 | 0.1 | setosa |
5.8 | 4.0 | 1.2 | 0.2 | setosa |
5.7 | 4.4 | 1.5 | 0.4 | setosa |
5.4 | 3.9 | 1.3 | 0.4 | setosa |
5.1 | 3.5 | 1.4 | 0.3 | setosa |
5.7 | 3.8 | 1.7 | 0.3 | setosa |
5.1 | 3.8 | 1.5 | 0.3 | setosa |
5.4 | 3.4 | 1.7 | 0.2 | setosa |
5.1 | 3.7 | 1.5 | 0.4 | setosa |
4.6 | 3.6 | 1.0 | 0.2 | setosa |
5.1 | 3.3 | 1.7 | 0.5 | setosa |
4.8 | 3.4 | 1.9 | 0.2 | setosa |
5.0 | 3.0 | 1.6 | 0.2 | setosa |
5.0 | 3.4 | 1.6 | 0.4 | setosa |
5.2 | 3.5 | 1.5 | 0.2 | setosa |
5.2 | 3.4 | 1.4 | 0.2 | setosa |
4.7 | 3.2 | 1.6 | 0.2 | setosa |
4.8 | 3.1 | 1.6 | 0.2 | setosa |
5.4 | 3.4 | 1.5 | 0.4 | setosa |
5.2 | 4.1 | 1.5 | 0.1 | setosa |
5.5 | 4.2 | 1.4 | 0.2 | setosa |
4.9 | 3.1 | 1.5 | 0.2 | setosa |
5.0 | 3.2 | 1.2 | 0.2 | setosa |
5.5 | 3.5 | 1.3 | 0.2 | setosa |
4.9 | 3.6 | 1.4 | 0.1 | setosa |
4.4 | 3.0 | 1.3 | 0.2 | setosa |
5.1 | 3.4 | 1.5 | 0.2 | setosa |
5.0 | 3.5 | 1.3 | 0.3 | setosa |
4.5 | 2.3 | 1.3 | 0.3 | setosa |
4.4 | 3.2 | 1.3 | 0.2 | setosa |
5.0 | 3.5 | 1.6 | 0.6 | setosa |
5.1 | 3.8 | 1.9 | 0.4 | setosa |
4.8 | 3.0 | 1.4 | 0.3 | setosa |
5.1 | 3.8 | 1.6 | 0.2 | setosa |
4.6 | 3.2 | 1.4 | 0.2 | setosa |
5.3 | 3.7 | 1.5 | 0.2 | setosa |
5.0 | 3.3 | 1.4 | 0.2 | setosa |
7.0 | 3.2 | 4.7 | 1.4 | versicolor |
6.4 | 3.2 | 4.5 | 1.5 | versicolor |
6.9 | 3.1 | 4.9 | 1.5 | versicolor |
5.5 | 2.3 | 4.0 | 1.3 | versicolor |
6.5 | 2.8 | 4.6 | 1.5 | versicolor |
Pandoc은 단순 테이블, 여러 줄 테이블, 그리드 테이블 및 파이프 테이블과 같은 여러 유형의 마크 다운 테이블을 지원합니다. knitr::kable ()
이 생성하는 것은 다음과 같은 간단한 테이블입니다.
Table: A simple table in Markdown.
Sepal.Length Sepal.Width Petal.Length Petal.Width
------------- ------------ ------------- ------------
5.1 3.5 1.4 0.2
4.9 3.0 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5.0 3.6 1.4 0.2
5.4 3.9 1.7 0.4
문서에서 모든 유형의 마크 다운 테이블을 사용할 수 있습니다. 마크 다운 테이블을 상호 참조 할 수 있으려면Table:(\#label) Caption here
형식의 라벨이 지정된 캡션이 있어야 합니다. 여기서label
에는 접두사tab:
이 있어야합니다 (예 :tab:단순-테이블)
.
다른 R 패키지를 사용하여 테이블을 생성하기로 결정한 경우 테이블 캡션의 시작 부분에 테이블 환경의 라벨이(\#label)
형식으로 표시되는지 확인해야 합니다(다시 말하지만label
에는 접두사tab:
이 있어야 합니다). 테이블 생성 함수의 이동성(protability)에 대해 매우 주의해야 합니다. HTML 및 LaTeX 출력 모두에서 자동으로 작동해야하므로 내부적으로 출력 형식을 고려해야 합니다 (knit::opts_knit$get('rmarkdown.pandoc.to')
확인). HTML 테이블을 작성할 때 캡션은 <caption> </caption>
태그에 작성해야 합니다. 간단한 테이블의 경우 kable()
이면 충분합니다. 복잡한 테이블을 만들어야 하는 경우(예 : 특정 셀이 여러 열/행에 걸쳐있는 경우) 앞서 언급한 문제를 고려해야 합니다.