2013-09-26 5 views
5
私はrenderTableが、テーブル内のHTMLを使用してテーブルを作成してい

は、レンダリングされていません。R光沢のあるテーブルのレンダリングではないHTML

if (is.null(Compare_Count) || is.na(Compare_Count) || length(Compare_Count) == 0L) { 
      CT_Table[i, 3] <- HTML("<i class='icon-arrow-up'></i>") 
     } else if (CT_Table[i, 2] > Compare_Count) { 
      CT_Table[i, 3] <- print(tags$i(class='icon-arrow-up', style="text-color: green"), quote = FALSE) 
} 

table not rendering

これは、関心のあるコードsnipitです

いずれもHTML,、またはcではありません。

どうすれば矢印を表示できますか?

ありがとうございます!


server.r [注:これは一例です。コードブラケットが質問に重要ではないなど、不一致であってもよいし、完全なものではありません。]

output$example <- renderTable(include.rownames=FALSE,{ 
CT_Table <- count(Canidates,vars=c("Name")) 
CT_Table <- CT_Table[order(CT_Table["Recent Reviews: "], decreasing=T),] 
    for (i in 1:nrow(CT_Table)) { 
     Compare_Name <- paste(CT_Table$Product[i]) 
     Compare_Count <- Can_trend[Can_trend$Name == Compare_Name, 2] 
     if (is.null(Compare_Count) || is.na(Compare_Count) || length(Compare_Count) == 0L) 
{ 
      CT_Table[i, 3] <- HTML("<i class='icon-arrow-up'></i>") 
     } else if (CT_Table[i, 2] > Compare_Count) { 
      CT_Table[i, 3] <- tags$i(class='icon-arrow-up', style="text-color: green") 
     } else if (CT_Table[i, 2] < Compare_Count) { 
      CT_Table[i, 3] <- tags$i(class='icon-arrow-down', style="text-color: red") 
     } else if (CT_Table[i, 2] == Compare_Count) { 
      CT_Table[i, 3] <- tags$i(class='icon-minus', style="text-color: yellow") 
     } 
    } 
    } 
CT_Table 
}) 

ui.rtableOutputまたはhtmlOutputへの単純な呼び出しですが、どちらも列に貼り付けるHTMLをレンダリングします。

+0

最小限ではあるが完全な 'ui.R'と' server.R'ファイルを提供できますか? – juba

+0

より完全なコード例で質問を更新しました。ファイルは数千行にもなるので、必要なものだけを貼り付けようとしています。私が何かを残したら教えていただき、ありがとうございます! – JayCo

答えて

7

sanitize.text.function = function(x) xで修正されました。

それは次のように含まれている必要があります

output$example <- renderTable({ 
    table <- someTable_Data_here 
    table 
}, sanitize.text.function = function(x) x) 

これは、私はあなたが内側にxtableを呼び出すことができることに気づいた要旨here


、ノート、

ですrenderTable関数を呼び出すと、テーブルが正しくレンダリングされます。

BUTxtableに渡すオプションは無効です。代わりに、それらのオプションを 'renderTable'関数に渡す必要があります。

あなたはこの呼び出したい場合はそう:あなたが何をする必要があるか

output$example <- renderTable({ 
    table <- someTable_Data_here 
    xtable(table, align=c("llr")) 
}, sanitize.text.function = function(x) x) 

されています:

output$example <- renderTable({ 
    table <- someTable_Data_here 
    table 
},align=c("llr"), sanitize.text.function = function(x) x) 

RStudioチームとRShinyみんなが素晴らしいです。私はまだ1トンもの文書が書かれていると確信しています。そして、これは誰かが助けてくれることを願っています。

+0

'renderDataTable'に' sanitize.text.function'と同等の機能がありますか?ありがとう! – harkmug

+0

'sanitize.text.function'は自身がhtmlを書いている' xtable'パッケージからのものであるため、 'renderTable'はパラメータを渡すだけです。 'renderDataTable'が正しく表示する方法でhtmlを埋め込むことはおそらく可能ですが、それは新しい質問のように聞こえます! – JayCo

+0

'renderDataTable'にテキストのセンシティブ化を使う必要はありません。自動的にhtmlをレンダリングします。現在の実装(2014年11月1日)は、htmlをエスケープせずにアルファベット順に整形されたhtmlをソートすることに注意してください。私はバグレポートを提出しました。 – JayCo

関連する問題