2013-07-19 14 views
9

データフレームがRにあるとします。私は単純なHTMLテーブルとしてファイルに書きたいと思います。 <テーブル>、< tr>、< td>タグのように、Rデータフレームを単純な形式のHTMLテーブルに変換するにはどうすればよいですか?

これまでのところ、これはこれよりも難しいようです。

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

をしかし、私はそうのように見えるかもしれません醜い、HTMLスタイルファイルを取得:今、私はそうのようなR2THMLを使用しようとしている

<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

私は 'のためにそれを使ったことがありませんHTML'ですが、 'xtable'は' latex'のために 'HTML'オプションを持つ良いパッケージです。 –

答えて

15

xtableパッケージには、HTML出力だけでなく、LaTeX出力を生成することができます。

<!-- 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> 

これはさらにxtableprint.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> 
を与える

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

はファイルexample.htmlに与えます

(前の例のようにprint.xtablefile引数でファイルを対象とすることができた。)

+0

私は '?xtable'を見て、私には' type'パラメータはありません。私がそれを指定すると、無視されます、私はいつもLaTeXを取得します。 'x < - xtable(...)'のときだけ動作し、 'print.xtable(x、type =" html ")'を使用します。 –

+0

@ Someone 'type'引数*は' print'呼び出しの引数であり、 'xtable'呼び出しの引数ではありません。便宜上、 'print'コールの中で' xtable'呼び出しをネストしました。 –

4

xtableを使用すると、答えは実際には非常に簡単です。 (先端のためのセニョールOに感謝します。)

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に耳を傾け、コードを説明する必要があります。 –

関連する問題