kableExtra column_spec 错误 - 也许 dplyr 总结
kableExtra column_spec error - maybe dplyr summarise
我在使用 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")
我收到这个错误 -
Error in xml_children(x)[[search]] : subscript out of bounds
在尝试为不存在的列指定列宽的上下文中,我完全理解这个错误,但是由 summarize 函数创建的这个数据框显然包含 4 列...
行数:12
列数:4
组:气缸、齿轮、碳水化合物 [12]
$ 圆柱 8, 8, 8, 8, 8, 6, 6, 6, 4, 4, 4, 4
$ 齿轮 3, 3, 3, 5, 5, 3, 4, 5, 3, 4, 4, 5
$ 碳水化合物 2, 3, 4, 4, 8, 1, 4, 6, 1, 1, 2, 2
$ 计数 4, 3, 5, 1, 1, 2, 4, 1, 1, 4, 4, 2
所以我不明白这个错误是怎么发生的。另外,如果我删除列宽
设置第 4 列,然后按预期输出 table(减去所需的宽度
第 4 列)
我想知道这是由于最近更新了 kableExtra(现在是 1.3.1)还是由于 dplyr summarize(现在是 1.0.2)中的新“.groups”参数 - 但我试过了.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")
我在使用 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")
我收到这个错误 -
Error in xml_children(x)[[search]] : subscript out of bounds
在尝试为不存在的列指定列宽的上下文中,我完全理解这个错误,但是由 summarize 函数创建的这个数据框显然包含 4 列...
行数:12
列数:4
组:气缸、齿轮、碳水化合物 [12]
$ 圆柱 8, 8, 8, 8, 8, 6, 6, 6, 4, 4, 4, 4
$ 齿轮 3, 3, 3, 5, 5, 3, 4, 5, 3, 4, 4, 5
$ 碳水化合物 2, 3, 4, 4, 8, 1, 4, 6, 1, 1, 2, 2
$ 计数 4, 3, 5, 1, 1, 2, 4, 1, 1, 4, 4, 2
所以我不明白这个错误是怎么发生的。另外,如果我删除列宽 设置第 4 列,然后按预期输出 table(减去所需的宽度 第 4 列)
我想知道这是由于最近更新了 kableExtra(现在是 1.3.1)还是由于 dplyr summarize(现在是 1.0.2)中的新“.groups”参数 - 但我试过了.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")