首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向表中的一组列添加标签

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

Stack Overflow用户
提问于 2015-03-21 19:52:35
回答 2查看 2.4K关注 0票数 1

在Rstudio中创建R标记报告时,我希望使我的表更容易理解。我研究了可及性()和xtable(),但是我没有找到我正在寻找的东西(或者可能还没有理解我找到了什么)。下面是一个示例表,我可能会包括:

代码语言:javascript
运行
复制
library(dplyr)
library(tidyr)
library(knitr)

mtcars %>% 
 group_by(gear,cyl) %>%
 summarize(count = n()) %>%
 spread(cyl,count) %>%
 kable()

以下是(控制台)结果:

代码语言:javascript
运行
复制
| gear|  4|  6|  8|
|----:|--:|--:|--:|
|    3|  1|  2| 12|
|    4|  8|  4| NA|
|    5|  2|  1|  2|

在报告中,我希望将列名"Cyl“(或者更好的”圆柱“)包含在4/6/8之上,否则,在复杂的表中,可能不清楚这些值代表了什么。

具体而言:我如何在这个表的开头添加一行,显示最后三列上方的“柱面”?

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-23 15:07:51

这不是我想要的具体内容,但我决定只更改每个列的名称。这是基本的,但是对于未来的任何人来说,我的代码现在如下所示:

代码语言:javascript
运行
复制
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()

结果表在控制台中如下所示:

代码语言:javascript
运行
复制
| gear| 4 Cylinder| 6 Cylinder| 8 Cylinder|
|----:|----------:|----------:|----------:|
|    3|          1|          2|         12|
|    4|          8|          4|         NA|
|    5|          2|          1|          2|
票数 0
EN

Stack Overflow用户

发布于 2016-12-28 12:46:18

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

代码语言:javascript
运行
复制
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
)

对于PDF输出,Hmisc::latex提供了类似的语法(不幸的是,由于我目前正在处理的机器上缺少LaTeX,我无法测试这个语法):

代码语言:javascript
运行
复制
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
)

如果你想要MS字输出,你现在运气不好,据我所知。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29187321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档