在平移器

时间:2015-11-18 16:44:03

标签: r string dataframe pander

我在pander中生成一个简单的表。我希望能够更好地控制显示为标题的文本。例如下面的代码:

---
title: "OddFile"
author: "Test"
date: "November 18, 2015"
output: pdf_document
---

Amazing table

```{r sourceDescribeIndicators, echo=FALSE, eval=TRUE, message=FALSE, warning=FALSE, cache=TRUE}
library(datasets)
data(mtcars)
require(reshape2)
mtcars$nme <- rownames(mtcars)
mtc_melt <- melt(data = mtcars, id.vars = c("nme"))

# Pander
require(pander)
pander(data.frame("Available Models" = unique(mtc_melt$nme)))
```

会生成下表:

pander table

应用于生成的唯一值向量的数据框转换会导致可用模型转换为 Available.Models ,因为make.names函数将返回同样的结果。我怎样才能方便地解决它?我对一个解决方案很感兴趣,这个解决方案可以让我在通过pander生成表时使用在语法上不正确的字符串。

1 个答案:

答案 0 :(得分:1)

这不是pander问题,但默认情况下data.frame在内部调用make.names,但您可以通过check.names参数覆盖此行为,例如:

> pander(head(data.frame("Available Models" = unique(mtc_melt$nme), check.names = FALSE)))

------------------
 Available Models 
------------------
    Mazda RX4     

  Mazda RX4 Wag   

    Datsun 710    

  Hornet 4 Drive  

Hornet Sportabout 

     Valiant      
------------------