2013-07-19 12 views
9

मान लें कि मेरे पास R में डेटा फ्रेम है। मैं इसे एक साधारण HTML तालिका के रूप में फ़ाइल में लिखना चाहता हूं। बस < तालिका>, < tr>, और < td> टैग।मैं आर डेटा फ्रेम को एक साधारण, अस्थिर HTML तालिका में कैसे बदल सकता हूं?

अभी तक यह होना चाहिए जितना कठिन होना चाहिए। अभी मैं बहुत तरह R2THML उपयोग करने के लिए कोशिश कर रहा हूँ:

HTML(dataframe, file=outpath, append=FALSE) 

लेकिन तब मैं एक बदसूरत, एचटीएमएल स्टाइल फ़ाइल कि इतने कैसा लग सकता है मिलती है:

<table cellspacing=0 border=1> 
<caption align=bottom class=captiondataframe></caption> 
<tr><td> 
    <table border=0 class=dataframe> 
    <tbody> 
    <tr class= firstline > 
     <th>&nbsp; </th> 
     <th>name </th> 
     <th>donations </th> 
     <th>clicks </th> 
      ... 
    </tr> 
<tr> 
<td class=firstcolumn>1 
</td> 
<td class=cellinside>Black.text 
</td> 
... 
</tbody> 
</table> 
</td></table> 
<br> 

वहाँ एक रास्ता उत्पादन प्राप्त करने के लिए है यह आसान है (सीमा, शीर्षक, कैप्शन इत्यादि निर्दिष्ट किए बिना। के अंदर एक तालिका को आउटपुट किए बिना)? या यह उतना अच्छा है जितना यह मिलता है?

+2

मैं 'के लिए यह प्रयोग किया जाता कभी नहीं किया है एचटीएमएल' लेकिन मुझे पता है कि 'xtable' एक अच्छा पैकेज है (मैं इसे' लेटेक्स' के लिए उपयोग करता हूं) जिसमें 'HTML' विकल्प है। –

उत्तर

15

xtable पैकेज HTML आउटपुट के साथ-साथ LaTeX उत्पादन उत्पन्न कर सकते हैं।

# install.packages("xtable") 
library("xtable") 
sample_table <- mtcars[1:3,1:3] 
print(xtable(sample_table), type="html", file="example.html") 

देता है, फ़ाइल example.html में:

<!-- html table generated in R 3.0.1 by xtable 1.7-1 package --> 
<!-- Fri Jul 19 09:08:15 2013 --> 
<TABLE border=1> 
<TR> <TH> </TH> <TH> mpg </TH> <TH> cyl </TH> <TH> disp </TH> </TR> 
    <TR> <TD align="right"> Mazda RX4 </TD> <TD align="right"> 21.00 </TD> <TD align="right"> 6.00 </TD> <TD align="right"> 160.00 </TD> </TR> 
    <TR> <TD align="right"> Mazda RX4 Wag </TD> <TD align="right"> 21.00 </TD> <TD align="right"> 6.00 </TD> <TD align="right"> 160.00 </TD> </TR> 
    <TR> <TD align="right"> Datsun 710 </TD> <TD align="right"> 22.80 </TD> <TD align="right"> 4.00 </TD> <TD align="right"> 108.00 </TD> </TR> 
    </TABLE> 

यह आगे xtable और print.xtable को अधिक विकल्पों के साथ सरल किया जा सकता है:

print(xtable(sample_table, align="llll"), 
     type="html", html.table.attributes="") 

देता

<!-- html table generated in R 3.0.1 by xtable 1.7-1 package --> 
<!-- Fri Jul 19 09:13:33 2013 --> 
<TABLE > 
<TR> <TH> </TH> <TH> mpg </TH> <TH> cyl </TH> <TH> disp </TH> </TR> 
    <TR> <TD> Mazda RX4 </TD> <TD> 21.00 </TD> <TD> 6.00 </TD> <TD> 160.00 </TD> </TR> 
    <TR> <TD> Mazda RX4 Wag </TD> <TD> 21.00 </TD> <TD> 6.00 </TD> <TD> 160.00 </TD> </TR> 
    <TR> <TD> Datsun 710 </TD> <TD> 22.80 </TD> <TD> 4.00 </TD> <TD> 108.00 </TD> </TR> 
    </TABLE> 

(जो file पिछले उदाहरण में के रूप में print.xtable को तर्क के साथ एक फ़ाइल को निर्देश दिया जा सकता है।)

+0

मैं '? Xtable' को देखता हूं और मेरे लिए कोई 'टाइप' पैरामीटर नहीं है। जब मैं इसे निर्दिष्ट करता हूं तो इसे अनदेखा किया जाता है, मुझे हमेशा लाटेक्स मिलता है। यह केवल तब काम करता है जब मैं 'x <- xtable (...)' और फिर 'print.xtable (x, type = "html") का उपयोग करता हूं। –

+0

@ सोमोन 'टाइप' तर्क *' प्रिंट 'कॉल के लिए एक तर्क है, न कि 'xtable' कॉल। मैंने बस सुविधा के लिए 'प्रिंट' कॉल के अंदर 'xtable' कॉल को नेस्टेड किया। –

4

यदि आप xtable का उपयोग करते हैं तो उत्तर वास्तव में काफी सरल है। (टिप के लिए मैडम हे के लिए धन्यवाद।)

install.packages("xtable") 
library(xtable) 
out_table_x <- xtable(out_table) 
print(out_table_x, type='html', file="./example.html") 
2

एक खूबसूरत लेकिन धीमी विकल्प:

library(htmlTable) 
htmlTable(iris) 
0
to_html_table<-function(dataframe){ 
tags$table(
    tags$thead(tags$tr(lapply(colnames(dataframe), function(x) tags$th(x)))), 
    tags$tbody(
    apply(dataframe,1, function(x) { tags$tr(lapply(x, function(y) tags$td(y)))}) 
)) 
} 
+1

कृपया अपना उत्तर संपादित करें और एक स्पष्टीकरण जोड़ें। कोड-केवल उत्तर निराश होते हैं और हटा दिए जा सकते हैं क्योंकि वे कुछ भी नहीं समझाते हैं। – WebDevBooster

+0

[समीक्षा प्रणाली के हिस्से के रूप में] (https://stackoverflow.com/review/low-quality-posts/18708495), मैंने फ़ॉर्मेटिंग को ठीक करने के लिए आपका उत्तर संपादित किया। आपको WebDevBooster सुनना चाहिए और अपना कोड समझा जाना चाहिए। –

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