1

我正在编写一个 rmarkdown 文档编织到 pdf,其中的表格取自 ezANOVA 包中的部分列表。这些表是使用 pander 包制作的。带有玩具数据集的玩具 Rmarkdown 文件。

---
title: "Table Doc"
output: pdf_document
---
```{r global_options, include=FALSE}
#set global knit options  parameters. 
knitr::opts_chunk$set(fig.width=12, fig.height=8, fig.path='Figs/', 
                      echo=FALSE, warning=FALSE, message=FALSE, dev = 'pdf')
```


```{r, echo=FALSE}
# toy data
id <- rep(c(1,2,3,4), 5)
group1 <- factor(rep(c("A", "B"), 10))
group2 <- factor(rep(c("A", "B"), each = 10))
dv <- runif(20, min = 0, max = 10)
df <- data.frame(id, group1, group2, dv)
```

``` {r anova, echo = FALSE}
library(ez)
library(plyr)
library(pander)

# create anova object
anOb <- ezANOVA(df,
                dv = dv,
                wid = id,
                between = c(group1, group2),
                type = 3,
                detailed = TRUE)

# extract the output table from the anova object, reduce it down to only desired columns
anOb <- data.frame(anOb[[1]][, c("Effect", "F", "p", "p<.05")])

# format entries in columns
anOb[,2] <- format( round (anOb[,2], digits = 1), nsmall = 1)
anOb[,3] <- format( round (anOb[,3], digits = 4), nsmall = 1)

pander(anOb, justify = c("left", "center", "center", "right"))
```

现在我有几个问题

a)对于最后三列,我希望表格中的列标题居中对齐,但这些标题下方的实际列条目向右对齐。

b) 我希望列标题“F”和“p”用斜体字,“p”列中的“p”也用斜体字,其余的用普通字体。所以他们读F , pp <.05

我尝试像这样使用 plyr::rename 重命名列标题

anOb <- rename(anOb, c("F" = "italic(F)", "p" = "italic(p)", "p<.05" = ""))

但它没有用

4

1 回答 1

1

在 Markdown 中,您必须使用斜体的 markdown 语法,即在星号或下划线之间换行:

> names(anOb) <- c('Effect', '*F*', '*p*', '*p<.05*')
> pander(anOb)

-----------------------------------------
    Effect       *F*     *p*     *p<.05* 
--------------- ------ -------- ---------
  (Intercept)    52.3   0.0019      *    

    group1       1.3    0.3180           

    group2       2.0    0.2261           

 group1:group2   3.7    0.1273           
-----------------------------------------

如果您想以编程方式执行此操作,您还可以使用pandoc.emphasis辅助函数将开头添加到字符串中。

但是您的另一个问题是由于包中的一个错误,我刚刚提出了对GH的修复。请随时尝试该分支并报告 GH——如果一切似乎都正常,我将在本周晚些时候尝试清理相关的单元测试并合并分支。

于 2016-03-22T07:00:29.510 回答