R rmarkdown 表中的连字符/破折号在输出中变成点

use*_*230 5 r knitr r-markdown kable

假设我有下表(数据集)并将其编织在 rmarkdown 文档中:

```{r global_options, include=FALSE, eval=TRUE, results='asis'}   
knitr::opts_chunk$set(echo=FALSE, #this sets up chunks, can then edit ones we want individually
                  warning=FALSE, 
                  message=FALSE,
                 eval=FALSE)
library(kableExtra)
```

```{r , eval=TRUE, results='asis'}
test <- structure(list(`Dependent: Surv(time, status)` = c("Age", "", 
    ""), c("<40 years", "40-59 years", "60+ years"), `HR (univariable)` = c("-", 
    "0.76 (0.53-1.09, p=0.132)", "0.93 (0.66-1.31, p=0.668)"), `HR (multivariable)` = c("-", 
    "0.79 (0.55-1.13, p=0.196)", "0.98 (0.69-1.40, p=0.926)")), .Names = c("Dependent: Surv(time, status)", 
    "", "HR (univariable)", "HR (multivariable)"), row.names = c(NA, 
    3L), class = "data.frame")
knitr::kable(test, row.names=FALSE)
```
Run Code Online (Sandbox Code Playgroud)

连字符变成了点,我想知道这是为什么:

在此输入图像描述 编辑:我发现它似乎是在我加载时library(kableExtra),如果我删除它它就可以工作。我还发现了这个相关问题https://github.com/haozhu233/kableExtra/issues/223

根据下面的有用建议,test[test== "-" ] <- "--"这是一种解决方法。

R>sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_Ireland.1252  LC_CTYPE=English_Ireland.1252    LC_MONETARY=English_Ireland.1252
[4] LC_NUMERIC=C                     LC_TIME=English_Ireland.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] backports_1.1.0 magrittr_1.5    rprojroot_1.2   htmltools_0.3.6 tools_3.3.1     yaml_2.1.14     Rcpp_0.12.16   
 [8] stringi_1.2.3   rmarkdown_1.10  knitr_1.20      stringr_1.3.1   digest_0.6.15   evaluate_0.10.1
Run Code Online (Sandbox Code Playgroud)

小智 4

在黑暗中拍摄..

Markdown 将连字符视为列表元素,并在编译期间将其转换为项目符号。我相信你想要的结尾..用两个连字符“--”替换“-”