dplyr向表中的一组列添加标签
在Rstudio中创建R降价报告时,我希望使我的表更容易理解。我已经研究了kable()和xtable(),但我还没有找到我要找的东西(或者可能还不明白我找到了什么)。以下是我可能包括的示例表: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(
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
)