【发布时间】:2019-03-15 04:38:56
【问题描述】:
我正在使用kable 并为大约 500 个数据集创建表,因此我正在尝试创建一个脚本并对其进行循环。我难倒我的一件事是我正在使用group_rows 选项,尽管组的数量会在数据集之间发生变化。如何设置一个 R 脚本来考虑这一点。
这是我的脚本,目前在 kable 命令中使用正常循环,但该循环不起作用...
[数据集grps是确定组的预定义标准]
对于下面的代码,grps 和 color 数据集如下。他们根本没有连接到mtcars:
grps <-
structure(list(no.cars = c(2,1,2), maincars = c("Mazda",
"Datsun", "Hornet"), start = c(1, 3, 4),
end = c(2L, 3L, 5L)), .Names = c("no.cars", "maincars",
"start", "end"), row.names = c(NA, -3L), class = "data.frame")
color <- structure(list(color=c("#20324C", "#D2A8A4", "#FFC65A")),.Names = c("color"), row.names = c(NA,
-3L), class = "data.frame")
mtcars[1:5,] %>%
knitr::kable(format="html")%>%
kable_styling("striped", full_width = F) %>%
for(g in 1:nrow(grps)){
group_rows(grps$maincars[g], grps$start[g], grps$end[g],label_row_css = paste0("background-color: ",color[g,1],"; color: #F1F1F1;")) %>% .()
} %>% as_image()
这样,它没有创建任何组。我很好奇是否有其他选择可以尝试?
谢谢
【问题讨论】:
-
你能提供一个完全可重现的例子吗?目前我希望这不起作用,因为
for-loop 没有连接到 mtcars-table.... -
已更新以包含
color和grps数据集的示例。他们当前未连接到mtcars。不过,我认为他们应该是? -
复制并粘贴在我的部分......在我的实际脚本中一切正常。
-
尝试仍然使用
for循环的非管道解决方案(即,将每个管道分解为自己的 obj<- ...行并将结果传递到下一行)。 -
要清楚,您建议在
kable之外创建一个循环,在其中我为每个可能的 group_row 创建一个对象?如果是这样,之后我将如何将它们全部连接在一起?我需要创建一个列表或类似的东西吗?