dplyr向表中的一组列添加标签

dplyr向表中的一组列添加标签,r,rstudio,knitr,dplyr,xtable,R,Rstudio,Knitr,Dplyr,Xtable,在Rstudio中创建R降价报告时,我希望使我的表更容易理解。我已经研究了kable()和xtable(),但我还没有找到我要找的东西(或者可能还不明白我找到了什么)。以下是我可能包括的示例表: library(dplyr) library(tidyr) library(knitr) mtcars %>% group_by(gear,cyl) %>% summarize(count = n()) %>% spread(cyl,count) %>% kable(

在Rstudio中创建R降价报告时,我希望使我的表更容易理解。我已经研究了kable()和xtable(),但我还没有找到我要找的东西(或者可能还不明白我找到了什么)。以下是我可能包括的示例表:

library(dplyr)
library(tidyr)
library(knitr)

mtcars %>% 
 group_by(gear,cyl) %>%
 summarize(count = n()) %>%
 spread(cyl,count) %>%
 kable()
以下是(控制台)结果:

在一份报告中,我想在4/6/8上面加上列名“Cyl”(或者更好的“Cylinder”)。否则,在复杂的表中,可能不清楚这些值代表什么

具体来说:如何在表格的开头添加一行,在最后三列的上方显示“圆柱体”


谢谢你的帮助

这不是我想要的,但我决定只更改每个单独的列名。这是最基本的,但对于将来看这里的人来说,我的代码现在是这样的:

library(dplyr)
library(tidyr)
library(knitr)

test <- mtcars %>% 
 group_by(gear,cyl) %>% 
 summarize(count = n()) %>%
 spread(cyl,count)

colnames(test)[2:4] <- paste(c(4,6,8),"Cylinder",sep=" ")

test %>% kable()

使用HTML作为输出时,
htmlTable
包提供列分组:

library(dplyr)
library(tidyr)
library(htmlTable)

test <- mtcars %>% 
 group_by(gear,cyl) %>% 
 summarize(count = n()) %>%
 spread(cyl,count)

htmlTable(
    test[,-1], # data.frame
    cgroup = c("Cylinders"), # Column group labels
    n.cgroup = c(3), # Number of columns per group
    rnames = test[[1]], # Row labels
    rowlabel = "Gears" # Column header for row labels
)

如果您想要MS Word输出,就我目前所见,您的运气不好。

行和列跨越不受Pandoc降价的支持,因此简而言之:如果没有肮脏的黑客攻击,您就无法做到这一点,例如在
pander
的交叉表实现中,例如
pander(带有(mtcars,descr::CrossTable(gear,cyl)))
——这是行扩展的一种解决方法。你需要科尔斯潘。
| gear| 4 Cylinder| 6 Cylinder| 8 Cylinder|
|----:|----------:|----------:|----------:|
|    3|          1|          2|         12|
|    4|          8|          4|         NA|
|    5|          2|          1|          2|
library(dplyr)
library(tidyr)
library(htmlTable)

test <- mtcars %>% 
 group_by(gear,cyl) %>% 
 summarize(count = n()) %>%
 spread(cyl,count)

htmlTable(
    test[,-1], # data.frame
    cgroup = c("Cylinders"), # Column group labels
    n.cgroup = c(3), # Number of columns per group
    rnames = test[[1]], # Row labels
    rowlabel = "Gears" # Column header for row labels
)
library(Hmisc)

latex(
    test[,-1], # data.frame
    cgroup = c("Cylinders"), # Column group labels
    n.cgroup = c(3), # Number of columns per group
    rowname = test[[1]], # Row labels
    rowlabel = "Gears" # Column header for row labels
)