이상적으로는 스크립트 내에서 멋진 형식의 데이터 프레임을 종이에 인쇄하고 싶습니다. (악기를 사용하여 데이터를 수집하고 R 스크립트를 사용하여 자동으로 처리하고 인쇄하려고합니다.)
지금은를 사용하여 텍스트 파일에 데이터 프레임을 쓸 수 write.table()
있지만 여기에는 두 가지 문제가 있습니다.
- 결과 텍스트 파일의 형식이 잘못되었습니다 (열이 반드시 제목과 일치 할 필요는 없음).
- R 내에서 텍스트 파일을 인쇄하는 방법을 모르겠습니다.
특정 코드보다 일반적인 전략을 더 많이 찾고 있습니다 (코드도 좋겠지 만!). Sweave가 가장 편리한 솔루션일까요? 원칙적 socketConnection()
으로 프린터로 인쇄하는 데 사용할 수 있으며, 그렇다면 사용 방법에 대해 어디서 배울 수 있습니까 (문서가 그다지 도움이되지 않음).
답변
다음은 grid.table
gridExtra 패키지에서 사용하는 빠르고 쉬운 가능성입니다 .
library(gridExtra)
pdf("data_output.pdf", height=11, width=8.5)
grid.table(mtcars)
dev.off()
데이터가 페이지에 맞지 않는 경우 텍스트 크기를 줄일 수 있습니다 grid.table(mtcars, gp=gpar(fontsize=8))
. 이것은 매우 유연하지 않을 수도 있고 일반화하거나 자동화하기 쉽지 않을 수도 있습니다.
답변
답변
놀랍게도 아무도 stargazer
멋진 데이터 인쇄용 패키지를 언급하지 않았습니다 .
멋진 텍스트 파일을 출력 할 수 있습니다.
stargazer(mtcars, type = 'text', out = 'out.txt')
============================================
Statistic N Mean St. Dev. Min Max
--------------------------------------------
mpg 32 20.091 6.027 10.400 33.900
cyl 32 6.188 1.786 4 8
disp 32 230.722 123.939 71.100 472.000
hp 32 146.688 68.563 52 335
drat 32 3.597 0.535 2.760 4.930
wt 32 3.217 0.978 1.513 5.424
qsec 32 17.849 1.787 14.500 22.900
vs 32 0.438 0.504 0 1
am 32 0.406 0.499 0 1
gear 32 3.688 0.738 3 5
carb 32 2.812 1.615 1 8
--------------------------------------------
또는 HTML :
stargazer(mtcars, type = 'html', out = 'out.html')
<table style="text-align:center"><tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Statistic</td><td>N</td><td>Mean</td><td>St. Dev.</td><td>Min</td><td>Max</td></tr>
<tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">mpg</td><td>32</td><td>20.091</td><td>6.027</td><td>10.400</td><td>33.900</td></tr>
<tr><td style="text-align:left">cyl</td><td>32</td><td>6.188</td><td>1.786</td><td>4</td><td>8</td></tr>
<tr><td style="text-align:left">disp</td><td>32</td><td>230.722</td><td>123.939</td><td>71.100</td><td>472.000</td></tr>
<tr><td style="text-align:left">hp</td><td>32</td><td>146.688</td><td>68.563</td><td>52</td><td>335</td></tr>
<tr><td style="text-align:left">drat</td><td>32</td><td>3.597</td><td>0.535</td><td>2.760</td><td>4.930</td></tr>
<tr><td style="text-align:left">wt</td><td>32</td><td>3.217</td><td>0.978</td><td>1.513</td><td>5.424</td></tr>
<tr><td style="text-align:left">qsec</td><td>32</td><td>17.849</td><td>1.787</td><td>14.500</td><td>22.900</td></tr>
<tr><td style="text-align:left">vs</td><td>32</td><td>0.438</td><td>0.504</td><td>0</td><td>1</td></tr>
<tr><td style="text-align:left">am</td><td>32</td><td>0.406</td><td>0.499</td><td>0</td><td>1</td></tr>
<tr><td style="text-align:left">gear</td><td>32</td><td>3.688</td><td>0.738</td><td>3</td><td>5</td></tr>
<tr><td style="text-align:left">carb</td><td>32</td><td>2.812</td><td>1.615</td><td>1</td><td>8</td></tr>
<tr><td colspan="6" style="border-bottom: 1px solid black"></td></tr></table>
답변
답변
grid.table 솔루션은 실제로 PDF를 생성하는 가장 빠른 방법이지만 테이블이 상당히 긴 경우 최적의 솔루션이 아닐 수 있습니다. RStudio + knitr + longtable을 사용하면 멋진 형식의 PDF를 매우 쉽게 만들 수 있습니다. 필요한 것은 다음과 같습니다.
\documentclass{article}
\usepackage{longtable}
\begin{document}
<<results='asis'>>=
library(xtable)
df = data.frame(matrix(rnorm(400), nrow=100))
xt = xtable(df)
print(xt,
tabular.environment = "longtable",
floating = FALSE
)
@
\end{document}
자세한 내용 은 이 게시물을 참조하십시오.
답변
들어 긴 / 넓은 테이블 당신은 사용할 수 판더을 .
긴 테이블을 페이지에 맞는 짧은 부분으로 자동 분할합니다. 예를 들어 knitr을 사용 하여이 청크를 Rmd 파일에 삽입합니다.
pander::pander(mtcars)
Excel 표 와 비슷하게 보이는 것을 원한다면 (HTML의 편집 옵션도 포함) rhandsontable 을 사용 하십시오 . 비 네트의 사용 및 형식에 대한 자세한 정보 . Rmd를 html 파일로 묶어야합니다.
library(rhandsontable)
rhandsontable(mtcars, rowHeaders = NULL)
답변
화려하지는 않지만 매우 실용적입니다.
print.data.frame(iris)