Rmd表无法正确呈现

时间:2015-10-28 08:47:11

标签: r r-markdown

我无法弄清楚为什么Rmd doc中的表格无法正确呈现。 我的第一次尝试是标准的Rmd语法:

 k | Normal | Tschebyschev
------------- | ------------- | -------------
2   | `r round(100*(2*pnorm(-2)))` %   | `r round(100*(1/2^2))` %
2.5 | `r round(100*(2*pnorm(-2.5)))` % | `r round(100*(1/2.5^2))` %
3   | `r round(100*(2*pnorm(-3)),1)` % | `r round(100*(1/3^2),1)` %
4   | `r round(100*(2*pnorm(-4)),2)` % | `r round(100*(1/4^2),1)` %

表示没有表格边框或结构。 走向迎面而来的路线也是不成功的:

```{r, echo=FALSE, results='asis'}
k=c(2,2.5,3,4);
Normal=round(100*(2*pnorm(-k)),2) 
Normal[1:2] = round(Normal[1:2])
Tschebyschev=round(100*(1/k^2),1)
Tschebyschev[1:2] = round(Tschebyschev[1:2]) 
Normal = paste(Normal, "%") 
Tschebyschev = paste(Tschebyschev, "%")
pM = cbind(k=as.character(k),Normal=Normal,Tschebyschev=Tschebyschev)
library(pander)
pandoc.table(pM, style = "grid")
```

我的html输出如下所示

enter image description here

任何帮助都会非常有用

由于

1 个答案:

答案 0 :(得分:0)

表格中有几个选项: 首先,手动构建的表呈现给我。您包含哪些标题信息,尤其是在output: html_document

这是我的:

---
title: "Untitled"
output: html_document
---

k | Normal | Tschebyschev
------------- | ------------- | -------------
2   | `r round(100*(2*pnorm(-2)))` %   | `r round(100*(1/2^2))` %
2.5 | `r round(100*(2*pnorm(-2.5)))` % | `r round(100*(1/2.5^2))` %
3   | `r round(100*(2*pnorm(-3)),1)` % | `r round(100*(1/3^2),1)` %
4   | `r round(100*(2*pnorm(-4)),2)` % | `r round(100*(1/4^2),1)` %

如果这不起作用,那么尝试添加一些像这样的CSS来控制它们的边界(并不严格确定所有这些都是必需的):

---
title: "Untitled"
output: html_document
---
<style>
    table {
      border-collapse: collapse;
    }
      table, th, td, thead, tbody{
        border: 1px solid black;
    }
    thead {
        border-bottom: solid black;
    }
</style>

至于其他选项,我的转到kable(使您的pM对象与手动表相同),如果您还安装了kable.extras,则可以获得更多控制权再次对表格样式。

对我来说,如果没有pandoc.table选项,"grid"样式会更好。

DT(数据表)包也是一个很好的选择,特别是对于较长的表。使用datatable(pM)时,可以过滤和搜索表格。

但是所有这些都会响应CSS代码,因此如果设置不正确,那么您可能会遇到可读性方面的问题。