Xtable का उपयोग करते समय data.frame पंक्ति नामों को निकालें


111

ठीक है, मैं मानता हूं कि यह थोड़ा ऊपर है (पढ़ें: "बेवकूफ"), और मुझे लगता है कि यह काफी आसान है। मैं एक रिपोर्ट लिख रहा हूं और मैं xtableLaTeX टेबल जनरेशन के लिए पैकेज का उपयोग करना चाहता हूं (ध्यान दें कि memiscपैकेज काम करता है, लेकिन कहते हैं कि मैं यह पूरी तरह से करना चाहता हूं xtable)।

चलो मानक mtcarsडेटासेट और reshapeपैकेज का उपयोग करें :

mdtf <- melt(mtcars, id.vars = c("am", "cyl"), measure.vars = c("mpg", "hp", "wt"))
( res <- cast(mdtf, am + cyl ~ variable, mean) )
  am cyl      mpg        hp       wt
1  0   4 22.90000  84.66667 2.935000
2  0   6 19.12500 115.25000 3.388750
3  0   8 15.05000 194.16667 4.104083
4  1   4 28.07500  81.87500 2.042250
5  1   6 20.56667 131.66667 2.755000
6  1   8 15.40000 299.50000 3.370000

अगर मैं इसे अंदर लपेटता हूं xtable, तो मुझे पंक्ति के नाम मिलेंगे (1..6):

xtable(res)
% latex table generated in R 2.13.0 by xtable 1.5-6 package
% Fri Mar 25 09:40:12 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrrr}
  \hline
 & am & cyl & mpg & hp & wt \\ 
  \hline
1 & 0.00 & 4.00 & 22.90 & 84.67 & 2.94 \\ 
  2 & 0.00 & 6.00 & 19.12 & 115.25 & 3.39 \\ 
  3 & 0.00 & 8.00 & 15.05 & 194.17 & 4.10 \\ 
  4 & 1.00 & 4.00 & 28.07 & 81.88 & 2.04 \\ 
  5 & 1.00 & 6.00 & 20.57 & 131.67 & 2.75 \\ 
  6 & 1.00 & 8.00 & 15.40 & 299.50 & 3.37 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}

अब, क्या कोई मौका है कि मैं इससे बच सकता हूं (एक-लाइनर में, यदि संभव हो तो)?

जवाबों:


165

विधि include.rownames=FALSEमें उपयोग करें print। देखें ?print.xtable:

R> print(xtable(res), include.rownames=FALSE)

% latex table generated in R 2.12.2 by xtable 1.5-6 package
% Fri Mar 25 10:06:08 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrr}
  \hline
am & cyl & mpg & hp & wt \\ 
  \hline
0.00 & 4.00 & 22.90 & 84.67 & 2.94 \\ 
  0.00 & 6.00 & 19.12 & 115.25 & 3.39 \\ 
  0.00 & 8.00 & 15.05 & 194.17 & 4.10 \\ 
  1.00 & 4.00 & 28.07 & 81.88 & 2.04 \\ 
  1.00 & 6.00 & 20.57 & 131.67 & 2.75 \\ 
  1.00 & 8.00 & 15.40 & 299.50 & 3.37 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}

1
हां, मैं प्रिंट विधि के लिए प्रलेखन पढ़ना भूल गया। धन्यवाद!
aL3xa

4
एक लाइनर नहीं है, बल्कि एक तर्क है। :)
रोमन लुसट्रिक

और वह डिफ़ॉल्ट रूप matrixसे data.frameरूपांतरण वास्तव में कष्टप्रद है। संरक्षित करने के लिए यह एकमात्र समाधान (वर्कअराउंड) है rownames: vpihur.com/blog/?p=131 इसलिए मुझे अपना फ़ंक्शन संशोधित करना होगा: gist.github.com/887249rownames पहले कॉलम के रूप में सेट करने के लिए । और फिर LaTeX से भीख मांगने के लिए अपने दम पर कोशिकाओं को संरेखित न करें ... लानत है!
aL3xa
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.