3

在 Rmarkdown 中,我可以通过什么方式构建一个双向频率表?就像是:

这个

我尝试使用 knitr 包中的 kable 函数和 DT 包中的 datable 函数,但没有一个给我想要的结果。

更新:带有示例的可重现代码。

a <- sample(x = c(1,2,3), size = 1000, replace = T)
b <- sample(x = c('a', 'b', 'c'), size = 1000, replace = T)

df <- data.frame(vertical_title = a, horitzontal_title = b)

table(df)

              horitzontal_title
vertical_title   a   b   c
             1 118  98 106
             2 106  95 121
             3 128 114 114

我希望 'vertical_title' 和 'horizo​​ntal_title' 在 Rmarkdown 中对我的表可见。

4

1 回答 1

0

您可以按如下方式构建表:

---
title: Example 1
output: pdf_document
---

### This is a test

```{r,results='asis',echo=FALSE}

library(xtable)
a <- sample(x = c(1,2,3), size = 1000, replace = T)
b <- sample(x = c('a', 'b', 'c'), size = 1000, replace = T)

df <- data.frame(vertical_title = a, horitzontal_title = b)
df <- as.data.frame.matrix(table(df)) 


print(xtable(df,
            align = "|l|rrr|",
            caption = "Test"),
      caption.placement = 'top',
      comment = F,
      scalebox=1,
      include.rownames = T,
      hline.after = c(-1,0,nrow(df)),
      vline.after = c(1),
      format.args=list(big.mark = ",", decimal.mark = "."))


```

有关为标题添加多列和多行的方法,请参见此处:

R包xtable,如何从R创建具有多行和多列的乳胶表

希望这可以帮助!

于 2017-07-26T09:34:49.810 回答