微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

kableExtra column_spec 错误 - 也许 dplyr 总结

如何解决kableExtra column_spec 错误 - 也许 dplyr 总结

我在使用 kableExtra column_widths 时遇到了奇怪的行为,我不确定是由于最新版本的 kableExtra 还是由于 dplyr 的汇总函数中新实现的“groups”参数。

如果我创建一个这样的数据框......

 Summary <- mtcars %>% 
            group_by(cyl,gear,carb) %>% 
            summarise(count = n(),.groups = "keep") %>% 
            arrange(desc(cyl))

然后尝试像这样使用 kableExtra 将数据框制表...

 kable((Summary),caption = "mtcars Data Summary\n",align = c('l','l','c','c')) %>%
                  kable_styling(bootstrap_options = c("striped","hover"),full_width = FALSE,position = "left") %>% 
                  collapse_rows(columns = 1,valign = "top") %>% 
                  column_spec(1,width = "3cm") %>% column_spec(2,width = "3cm") %>% 
                  column_spec(3,width = "2cm") %>% column_spec(4,width = "2cm")

我收到此错误 -

xml_children(x)[[search]] 中的错误:下标越界

在尝试为不存在的列指定列宽的上下文中,我完全理解此错误,但由汇总函数创建的此数据框显然包含 4 列...

行数:12
列数:4
组:汽缸、齿轮、碳水化合物 [12]
$ 8,8,6,4,4
$ 齿轮 3,3,5,5
$ 碳水化合物 2,1,2,2
$ 数 4,2

所以我无法理解这个错误是如何发生的。另外,如果我删除列宽 列 #4 的设置然后表按预期输出(减去所需的宽度 第 4 列)

我想知道这是由于 kableExtra(现在在 1.3.1 上)的最近更新还是由于 dplyr 总结中的新“.groups”参数(现在在 1.0.2 上) - 但我已经尝试了所有.groups = "..." 的有效值没有成功。

解决方法

最后添加collapse_rows函数。

library(kableExtra)

Summary <- mtcars %>% 
            group_by(cyl,gear,carb) %>% 
            summarise(count = n(),.groups = "keep") %>% 
            arrange(desc(cyl))

Table <- kbl(Summary,caption = "mtcars Data Summary\n",align = c('l','l','c','c')) %>%
         kable_styling(bootstrap_options = c("striped","hover"),full_width = FALSE,position = "left") %>% 
         column_spec(1,width = "3cm") %>% column_spec(2,width = "3cm") %>% 
         column_spec(3,width = "2cm") %>% column_spec(4,width = "2cm")

Table <- Table %>% 
         collapse_rows(columns = 1,valign = "top")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?