gpt4 book ai didi

r - 使用 knit kable 功能对齐列

转载 作者:行者123 更新时间:2023-12-03 02:18:37 26 4
gpt4 key购买 nike

我正在执行一项简单的任务:创建一个表格并使用 R Markdown 将其输出到 pdf,如下所示:

library(knitr)
kable(datatable,align='ccccccc',
col.names = c("Copy","Sigma Est","Sigma Lower","Sigma Upper",
"Lambda Est","Lambda Lower","Lambda Upper"),digits=3)

问题

当我输出表格时,列不居中。实际上,对于某些表格,它们是右对齐的,而另一些表格是左对齐的,这对我来说似乎相当随机。

问题

如何使用 knitr 包中的 R 函数 kable 控制列的对齐方式,即我做错了什么?

编辑

运行:

library(knitr)
kable(datatable,align=c(rep('c',times=7)),
col.names = c("Copy","Sigma Est","Sigma Lower","Sigma Upper",
"Lambda Est","Lambda Lower","Lambda Upper"),digits=3)

产量:

| Copy | Sigma Est | Sigma Lower | Sigma Upper | Lambda Est | Lambda Lower | Lambda Upper |
|:----:|:---------:|:-----------:|:-----------:|:----------:|:------------:|:------------:|
| 0 | 14.631 | 12.275 | 16.987 | 0.129 | 8.778 | 9.296 |
| 1 | 16.988 | 14.275 | 19.700 | 0.136 | 8.190 | 8.736 |
| 2 | 20.850 | 17.517 | 24.183 | 0.129 | 8.595 | 9.113 |
| 3 | 20.551 | 17.229 | 23.874 | 0.127 | 9.015 | 9.523 |
| 4 | 22.651 | 18.993 | 26.310 | 0.127 | 8.969 | 9.478 |
| 5 | 23.369 | 19.652 | 27.086 | 0.127 | 8.599 | 9.108 |

这正是我想要的,因为 :---: 表示列居中,但是,当我按 Knit PDFpdf 时> 文档生成后,所有列仍然左对齐。我该如何解决这个问题?

最佳答案

您想要向 kable 提供一个等于列数的对齐字符串向量。正如帮助文件中提到的,

the alignment of columns: a character vector consisting of 'l' (left), 'c' (center) and/or 'r' (right); by default, numeric columns are right-aligned, and other columns are left-aligned; if align = NULL, the default alignment is used.

这是一个可重现的示例。

没有任何对齐值,字符列左对齐,数字列右对齐,如下所示。

library(knitr)

kable(head(mtcars[1:5]))

返回

|                  |  mpg| cyl| disp|  hp| drat|
|:-----------------|----:|---:|----:|---:|----:|
|Mazda RX4 | 21.0| 6| 160| 110| 3.90|
|Mazda RX4 Wag | 21.0| 6| 160| 110| 3.90|
|Datsun 710 | 22.8| 4| 108| 93| 3.85|
|Hornet 4 Drive | 21.4| 6| 258| 110| 3.08|
|Hornet Sportabout | 18.7| 8| 360| 175| 3.15|
|Valiant | 18.1| 6| 225| 105| 2.76|

为了使数字列居中对齐,同时保持字符列右对齐,我使用了以下内容。

kable(head(mtcars[1:5]), align=rep('c', 5))


| | mpg | cyl | disp | hp | drat |
|:-----------------|:----:|:---:|:----:|:---:|:----:|
|Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 |
|Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 |
|Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 |
|Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 |
|Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 |
|Valiant | 18.1 | 6 | 225 | 105 | 2.76 |
<小时/>

以下文本如果复制到 .Rmd 文件中,将返回表格,并根据需要将其格式化为 pdf 文件。

---
title: "Untitled"
output: pdf_document
---

this thing

```{r table1, as.is=TRUE}
library(knitr)

kable(head(mtcars[1:5]))

```


is not a centered table, while this thing

```{r table2, as.is=TRUE}

kable(head(mtcars[1:5]), align=rep('c', 5))

```

is a centered table.

关于r - 使用 knit kable 功能对齐列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41365502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com