2012-09-13 25 views
6

Trước tiên, tôi sẽ cho bạn biết những gì tôi đang cố gắng để làm hình ảnh lớn trong trường hợp tôi đang đi về nó sai. Tôi có một bảng lồng nhau mà tôi muốn đưa ra như một bảng LaTeX trong RStudio sử dụng knitr. Tôi ổn cho đến khi tôi cố gắng thêm chú thích. Tôi đã thử ví dụ trên trang 9 trong tables họa tiết (LINK).HMisc :: latex không in chú thích w/đối tượng dạng bảng

Nó hoạt động mà không có chú thích nhưng khi tôi thêm chú thích thì không. Nó cũng làm việc với một đối tượng không dạng bảng. Điều thú vị là latex.default hoạt động nhưng gây ra lỗi trong tệp biên dịch PDF của RStudio/knitr và từ những gì tôi đọc được gọi là latex; cộng với bảng không được làm tròn một cách thích hợp nữa. Tôi đã thử latexTabular nhưng không được làm tròn một cách thích hợp.

library(Hmisc); library(tables) 
latex(head(mtcars), file="", caption="de") #works 

x <- tabular((Species + 1) ~ (n=1) + Format(digits=2)* 
     (Sepal.Length + Sepal.Width)*(mean + sd), data=iris) 

latex(x, file="", caption="de") #no caption :(

Lý tưởng tôi muốn có thể có \caption{de} ở đầu ra nhưng không thể tìm ra nơi tôi sẽ sai.

Trong trường hợp đó là hữu ích ở đây là các đầu vào và đầu ra:

> latex(x, file="", caption="de", label="tab1") 
\begin{tabular}{lccccc} 
\hline 
& & \multicolumn{2}{c}{Sepal.Length} & \multicolumn{2}{c}{Sepal.Width} \\ 
Species & n & mean & sd & mean & sd \\ 
\hline 
setosa & $\phantom{0}50$ & $5.01$ & $0.35$ & $3.43$ & $0.38$ \\ 
versicolor & $\phantom{0}50$ & $5.94$ & $0.52$ & $2.77$ & $0.31$ \\ 
virginica & $\phantom{0}50$ & $6.59$ & $0.64$ & $2.97$ & $0.32$ \\ 
All & $150$ & $5.84$ & $0.83$ & $3.06$ & $0.44$ \\ 
\hline 
\end{tabular} 
+0

'tabular()' xuất phát từ đâu? –

+0

@Josh bảng lời xin lỗi của tôi xuất phát từ gói bảng. –

+1

@ Brandon Tôi không nghĩ rằng xtable có thể xử lý các bảng lồng nhau nhưng tôi muốn được sai, như xtable đã được tuyệt vời để sử dụng. Thông thường tôi sẽ tranh luận ông ấy lên bàn nhưng tôi đang cố gắng tiến tới nghiên cứu tái sản xuất đầy đủ và chạy tất cả mọi thứ dưới dạng một tệp với knitr. –

Trả lời

6

x đối tượng từ bảng() là trọng tâm lớp học bảng 'và đã được cử đến latex.tabular mà không có lý luận chú thích. Tôi đoán rằng đó là trường hợp sử dụng dự định là trong Sweave đó sẽ được giao nhiệm vụ cung cấp các chú thích.

Tuy nhiên, có một ví dụ ở trang 22 sử dụng đối số "\\caption{.}" cho các tùy chọn trong họa tiết bảng. Điều này dường như mang lại thành công:

x <- tabular((Species + 1) ~ (n=1) + Format(digits=2)* 
      (Sepal.Length + Sepal.Width)*(mean + sd), data=iris) 

latex(x, file="", options = list(tabular="longtable", toprule="\\caption{This is a sample caption.}\\\\ \\toprule", midrule="\\midrule\\\\[-2\\normalbaselineskip]\\endhead\\hline\\endfoot")) 
\begin{longtable}{lccccc} 
\caption{This is a sample caption.}\\ \toprule 
& & \multicolumn{2}{c}{Sepal.Length} & \multicolumn{2}{c}{Sepal.Width} \\ 
Species & n & mean & sd & mean & sd \\ 
\midrule\\[-2\normalbaselineskip]\endhead\hline\endfoot 
setosa & $\phantom{0}50$ & $5.01$ & $0.35$ & $3.43$ & $0.38$ \\ 
versicolor & $\phantom{0}50$ & $5.94$ & $0.52$ & $2.77$ & $0.31$ \\ 
virginica & $\phantom{0}50$ & $6.59$ & $0.64$ & $2.97$ & $0.32$ \\ 
All & $150$ & $5.84$ & $0.83$ & $3.06$ & $0.44$ \\ 
\hline 
\end{longtable} 
+0

Điều đó hoạt động DWin –

+0

Tìm kiếm không khó. Tôi đã tìm kiếm trên từ: 'chú thích'. Bắt nó làm việc với sự hiểu biết hạn chế của tôi về LaTeX là những gì đáng giá “+” –

9

Tôi rất xấu hổ khi thừa nhận điều này nhưng toàn bộ vấn đề là tôi đang cố ép buộc thứ gì đó bên trong đoạn mã không thuộc về. Tôi đang nghẹn ngào vì niềm tự hào của mình để giúp những người tìm kiếm trong tương lai. Thứ cao su đi ra ngoài. Vì vậy, nếu bạn đang cố gắng vẽ bảng ở trên dưới dạng bảng được định dạng đẹp thì đây là những gì bạn đang tìm kiếm:

\begin{table}[ht] 
\caption{This is a sample caption. \label{guy}} 
<<desc, echo = FALSE, results = 'asis'>>= 
x <- tabular((Species + 1) ~ (n=1) + Format(digits=2)* 
    (Sepal.Length + Sepal.Width)*(mean + sd), data=iris) 
latex(x) 
@ 
\end{table} 
+0

+1 Không cần phải xấu hổ về điều này.Đây là một câu trả lời tốt và một dự phòng tốt nếu bạn không thể làm cho nó tất cả được thực hiện trong R . – Andrie

0

Điều này sẽ hiệu quả.

cat('\\begin{table}[ht] 
    \\centering') 
latex(tabularTable) 
cat('\\caption{some caption}') 
cat('\\label{tab:table1}') 
cat('\\end{table}')