2012-10-09 11 views
8

मैं अपने xtable आउटपुट में लेबल किए गए आयामों को रखना चाहता हूं। हालांकि, xtable की तालिका विधि नहीं उत्पादन आयाम भी लेबल जब मैं उन्हें table करने के लिए मैन्युअल निर्दिष्ट करता है: xtable.table के लिए कोड कीxtable.table आउटपुट में dimnames कैसे प्राप्त करें?

set.seed(10) 
d <- data.frame(x=sample(1:4),y=sample(1:4)) 
tb <- with(d, table(d,dnn=c("Xs","Ys"))) 
> tb 
    Ys 
Xs 1 2 3 4 
    1 0 0 0 1 
    2 0 1 0 0 
    3 1 0 0 0 
    4 0 0 1 0 
> xtable(tb) 
% latex table generated in R 2.15.1 by xtable 1.7-0 package 
% Tue Oct 9 09:06:10 2012 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{rrrrr} 
    \hline 
& 1 & 2 & 3 & 4 \\ 
    \hline 
1 & 0 & 0 & 0 & 1 \\ 
    2 & 0 & 1 & 0 & 0 \\ 
    3 & 1 & 0 & 0 & 0 \\ 
    4 & 0 & 0 & 1 & 0 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 

निरीक्षण किसी भी रहस्य उपज नहीं है। मल्टीरो के साथ मैन्युअल रूप से उन्हें बनाने का छोटा सा लेबल आयाम प्राप्त करने का कोई तरीका है?

उत्तर

4

एक समाधान tables पैकेज:

library(tables) 

tblr <- tabular((Xs = as.factor(x)) ~ (Ys = as.factor(y)), data = d) 
latex(tblr) 

\begin{tabular}{lcccc} 
\hline 
& \multicolumn{4}{c}{Ys} \\ 
Xs & 1 & 2 & 3 & \multicolumn{1}{c}{4} \\ 
\hline 
1 & $0$ & $0$ & $0$ & $1$ \\ 
2 & $0$ & $1$ & $0$ & $0$ \\ 
3 & $1$ & $0$ & $0$ & $0$ \\ 
4 & $0$ & $0$ & $1$ & $0$ \\ 
\hline 
\end{tabular} 
4

यह आयामों के नामों के आधार पर मल्टीरो या मल्टीकॉलम हेडर नहीं बनाता है, लेकिन कम से कम उन्हें प्रदर्शित किया जाता है।

print(xtable(format(ftable(tb))), 
     include.rownames=FALSE, include.colnames=FALSE, 
     sanitize.text.function = function(x) {gsub('"',"",x)}) 

जो

% latex table generated in R 2.15.1 by xtable 1.7-0 package 
% Tue Oct 09 11:28:33 2012 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{llllll} 
    \hline 
    \hline 
    & Ys & 1 & 2 & 3 & 4 \\ 
    Xs &  &  &  &  &  \\ 
    1 &  & 0 & 0 & 0 & 1 \\ 
    2 &  & 0 & 1 & 0 & 0 \\ 
    3 &  & 1 & 0 & 0 & 0 \\ 
    4 &  & 0 & 0 & 1 & 0 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 

साथ ही आप "सही" जगह में क्षैतिज लाइनों बहाल कर सकते हैं देता है:

print(xtable(format(ftable(tb))), 
     include.rownames=FALSE, include.colnames=FALSE, 
     sanitize.text.function = function(x) {gsub('"',"",x)}, 
     hline.after = c(-1, 2, nrow(tb)+2)) 

परिचय देते हुए

% latex table generated in R 2.15.1 by xtable 1.7-0 package 
% Tue Oct 09 11:29:21 2012 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{llllll} 
    \hline 
     & Ys & 1 & 2 & 3 & 4 \\ 
    Xs &  &  &  &  &  \\ 
    \hline 
1 &  & 0 & 0 & 0 & 1 \\ 
    2 &  & 0 & 1 & 0 & 0 \\ 
    3 &  & 1 & 0 & 0 & 0 \\ 
    4 &  & 0 & 0 & 1 & 0 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 
+0

ग्रेट। यह एक दयालु आर है एक साधारण टेबल मुद्रित करना इतना मुश्किल बनाता है। – skan

संबंधित मुद्दे