【发布时间】:2019-04-08 04:21:23
【问题描述】:
我正在 RStudio 中撰写博客文章。在某一时刻,块输出是一个带有命名数字向量的命名列表,结构如下:
object <- list("Name One" = c("A" = 1, "B" = 1), "Name two" = c("C" = 2, "D" = 2))
我想做的是使用:
object %>%
knitr::kable("html", col.names = X)
在漂亮的 HTML 表格中呈现输出。本例中渲染的col.names应该是"Name One"和"Name Two"。
当然,像col.names = names(object) 这样的方式就完美了!
这是我收到的错误消息:
Error in dimnames(x) <- dn : length of 'dimnames' [2] not equal to array extent
我了解每个列标题都呈现为:
<tr>
<th style="text-align:left;"> </th>
<th style="text-align:right;"> x </th>
</tr>
注意第一个空单元格。
每个命名的数字列都被呈现为:
<tr>
<td style="text-align:left;"> A </td>
<td style="text-align:right;"> 1 </td>
</tr>
<tr>
<td style="text-align:left;"> B </td>
<td style="text-align:right;"> 1 </td>
</tr>
我尝试过使用矢量c("Name One","name Two")、矢量c("Name One","n","Name Two","n"),以及各种seq() 和rep() 组合,但均未成功。
这里有一个更现实的例子 期待任何整洁的提示。
编辑:我刚刚添加了object %>% 以使我的目标更加明确。为了重现这个,你需要在 R Markdown / Notebook 中运行这个块:
object <- list("Name One" = c("A" = 1, "B" = 1), "Name two" = c("C" = 2, "D" = 2))
# cf. names(object)
object %>%
knitr::kable("html", col.names = names(object))
【问题讨论】:
-
我不太明白你想要的最终输出是什么。为什么不将列表转换为您想要的格式的 data.frame?
-
感谢您的提示。我刚刚更新了我的帖子并使我的目标更加明确。下面的块可在 .Rmd 中重现