如何在 kable() 的 table 中下标名称?
How can I subscript names in a table from kable()?
给定一个 data.frame A,我如何使用带下标的行和列名称?最终我想在 rmarkdown 中通过 kable() 生成一个 table (输出:word 文档)。
A <- data.frame(round(replicate(3, runif(2)),2))
rownames(A) <- c("Hola123", "Hola234")
A
X1 X2 X3
Hola123 0.47 0.55 0.66
Hola234 0.89 0.45 0.20
在通过 kable(A) 创建 table 时,如何使行名和列名中的所有数字都带有下标?
我试过:
rownames(A) <- c(expression(Hola["123"]), expression(Hola["234"]))
names(A) <- c(expression(X["1"]), expression(X["2"]), expression(X["3"]))
但是在 .rmd 文件中通过 kable() 创建 table 时它没有出现下标。
要在 rmarkdown 文档中添加下标,您可以将文本嵌入两个波浪号之间:text~sub~
。
使用函数 kable
时,table 中的任何文本都被识别为降价语法。这样您的 rmarkdown 代码应该是:
```{r}
A <- data.frame(round(replicate(3, runif(2)),2))
rownames(A) <- c("Hola~123~", "Hola~234~")
names(A) <- c("X~1~", "X~2~", "X~3~")
knitr::kable(A)
```
关于 bamphe 的回复只有一个注意事项是正确的代码拼写错误。应该是\textsubscript{}
。它缺少第二个 "t".
完成答案后,您可以选择在 kable
中使用参数 row.names
和 col.names
,这样:
A <- data.frame(round(replicate(3, runif(2)),2))
rownames(A) <- c("Hola\textsubscript{123}", "Hola\textsubscript{234}")
knitr::kable(A,
row.names = T,
col.names = c("X\textsubscript{1}", "X\textsubscript{2}", "X\textsubscript{3}"),
escape = F)
我也在寻找一种方法,允许下标和上标在中都html 和 pdf 格式 在带有 kable 的降价表中。经过一番查找,终于找到了@yihui-xie 在这里解释的文本引用方法:bookdownguide
(ref:foo) H~2~O
其中 foo
是参考,H~2~O
是文本。
我的代码示例展示了如何使用文本引用。请务必遵守基本规则:
- 引用在整个文档中必须是唯一的
- 引用不应该有一个白色的 space 在“待插入的东西”之后
- 参考文献需要在自己的段落中,并且在其上方和下方都有一个空行
请注意,只有引用的“foo”和“fo”才会给出下标,而 ~[]~ 方法仅适用于 html 而不是 pdf。
(ref:foo) CO~2~/CO~2~
(ref:fo) CO~2~
```{r chunk-to-show-the-text-reference-method, echo = FALSE }
library(dplyr)
library(knitr)
library(kableExtra)
# Make lists
dtmin_name <- c("ref/ref","refrigerant/CO2","(ref:foo)",paste0("ground/","(ref:fo)"),"ground/water","air/refrigerant","water/refrigerant","water/CO2")
temp_diff <- c( 2.3, 1.4, 0.8, 6.8, 14, 6, 4, 3.46)
# Make dataframe and column names
dtmin_df <- data.frame(dtmin_name,temp_diff, stringsAsFactors = FALSE)
colnames <- data.frame("Interface Type ", "dT~min~ Interval [K]", stringsAsFactors = FALSE)
colnames(dtmin_df) <- colnames
# Make Table
kable(dtmin_df, caption = "Typical dT~min~ Temperature Intervals", booktabs = TRUE, format.args = list(big.mark = ",")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),latex_options = c("striped","scale_down"))```
给定一个 data.frame A,我如何使用带下标的行和列名称?最终我想在 rmarkdown 中通过 kable() 生成一个 table (输出:word 文档)。
A <- data.frame(round(replicate(3, runif(2)),2))
rownames(A) <- c("Hola123", "Hola234")
A
X1 X2 X3
Hola123 0.47 0.55 0.66
Hola234 0.89 0.45 0.20
在通过 kable(A) 创建 table 时,如何使行名和列名中的所有数字都带有下标?
我试过:
rownames(A) <- c(expression(Hola["123"]), expression(Hola["234"]))
names(A) <- c(expression(X["1"]), expression(X["2"]), expression(X["3"]))
但是在 .rmd 文件中通过 kable() 创建 table 时它没有出现下标。
要在 rmarkdown 文档中添加下标,您可以将文本嵌入两个波浪号之间:text~sub~
。
使用函数 kable
时,table 中的任何文本都被识别为降价语法。这样您的 rmarkdown 代码应该是:
```{r}
A <- data.frame(round(replicate(3, runif(2)),2))
rownames(A) <- c("Hola~123~", "Hola~234~")
names(A) <- c("X~1~", "X~2~", "X~3~")
knitr::kable(A)
```
关于 bamphe 的回复只有一个注意事项是正确的代码拼写错误。应该是\textsubscript{}
。它缺少第二个 "t".
完成答案后,您可以选择在 kable
中使用参数 row.names
和 col.names
,这样:
A <- data.frame(round(replicate(3, runif(2)),2))
rownames(A) <- c("Hola\textsubscript{123}", "Hola\textsubscript{234}")
knitr::kable(A,
row.names = T,
col.names = c("X\textsubscript{1}", "X\textsubscript{2}", "X\textsubscript{3}"),
escape = F)
我也在寻找一种方法,允许下标和上标在中都html 和 pdf 格式 在带有 kable 的降价表中。经过一番查找,终于找到了@yihui-xie 在这里解释的文本引用方法:bookdownguide
(ref:foo) H~2~O
其中 foo
是参考,H~2~O
是文本。
我的代码示例展示了如何使用文本引用。请务必遵守基本规则:
- 引用在整个文档中必须是唯一的
- 引用不应该有一个白色的 space 在“待插入的东西”之后
- 参考文献需要在自己的段落中,并且在其上方和下方都有一个空行
请注意,只有引用的“foo”和“fo”才会给出下标,而 ~[]~ 方法仅适用于 html 而不是 pdf。
(ref:foo) CO~2~/CO~2~
(ref:fo) CO~2~
```{r chunk-to-show-the-text-reference-method, echo = FALSE }
library(dplyr)
library(knitr)
library(kableExtra)
# Make lists
dtmin_name <- c("ref/ref","refrigerant/CO2","(ref:foo)",paste0("ground/","(ref:fo)"),"ground/water","air/refrigerant","water/refrigerant","water/CO2")
temp_diff <- c( 2.3, 1.4, 0.8, 6.8, 14, 6, 4, 3.46)
# Make dataframe and column names
dtmin_df <- data.frame(dtmin_name,temp_diff, stringsAsFactors = FALSE)
colnames <- data.frame("Interface Type ", "dT~min~ Interval [K]", stringsAsFactors = FALSE)
colnames(dtmin_df) <- colnames
# Make Table
kable(dtmin_df, caption = "Typical dT~min~ Temperature Intervals", booktabs = TRUE, format.args = list(big.mark = ",")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),latex_options = c("striped","scale_down"))```