![](/img/trans.png)
[英]R data.frame with stacked specified titles for latex output with xtable
[英]Jupyter/R | How to force data.frame output as text/html and text/latex?
Jupyter/R 對 data.frame 的默認顯示會生成 text/html 和 text/latex 版本作為輸出。 您可以在 JSON 格式的 .ipynb 文件中看到這兩者的明確描述。 (這很好,因為 html 版本在運行的 Jupyter 筆記本中很好地呈現,而乳膠版本可以在從 .ipynb 轉換為 .tex 格式時使用)。
為了特別格式化 data.frames,我使用了 knitr 的 kable 函數,該函數生成 html(在 Jupyter 中呈現)或 Latex(不在 Jupyter 中呈現)。 我如何強制輸出兩者,就像默認顯示一樣。
JSON 格式的 .ipynb 文件應如下所示:
"cell_type": "code",
"execution_count": 12,
"metadata": {
"hide_input": false
},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n", ......
],
"text/latex": [
"A data.frame: 3 × 3\n",
"\\begin{tabular}{lll}\n", .......
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data.frame(a=c(1,2,3), b=c(10,20,30), c=c(100,200,300))"
]
},
這是解決方案。 使用 kable 創建 HTML 表示並再次使用 kable 創建 LaTex 表示。 用這兩個表示作為元素構建一個“mimebundle”列表。 使用 IRdisplay 的 publish_mimebundle 函數來顯示。 運行 Jupyter 時將呈現 HTML 表示; 從 Jupyter 格式轉換為 LaTeX 格式時,pandoc 將按原樣復制 LaTex 表示。
x = data.frame(a=c(1,2,3), b=c(10,20,30), c=c(100,200,300))
x.html = kable(x, format=“html”, escape=FALSE, align=rep(“r”, ncol(x)), caption=“This is from HTML”, row.names=FALSE, table.attr=“style="white-space: nowrap;"”)
x.latex = kable_styling(latex_options=c(“hold_position”),
kable(x, format=“latex”, escape=FALSE, align=rep(“r”, ncol(x)), caption=“This is from LaTex”, row.names=FALSE))
mbx = list(data=list(“text/html”=as.character(x.html), “text/latex”=as.character(x.latex)), metadata=NULL)
publish_mimebundle(mbx$data, mbx$metadata)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.