在 R 和 knitr 中构建表时在另一个变量上标上标
Superscripting a variable over another when building tables in R and knitr
我正在尝试构建一个 table,我的一个变量后面应该有另一个变量上标。我可以在 SO 上找到几个相关的答案,但它们都涉及需要上标的固定值,而不是像我这样的向量。
此外,大多数示例都涉及情节图例,而不是 table 像我的情况(尽管我认为这没有太大区别)。
示例数据:
library(tidyverse)
library(knitr)
df <- crossing(
X = seq(1:2),
Y = c("A", "B"))
df
# A tibble: 4 x 2
X Y
<int> <chr>
1 1 A
2 1 B
3 2 A
4 2 B
我想改变一个新变量,它只是 X 后面有 Y 值上标。
这是我尝试过的方法(无效):
df %>% mutate(
New = paste0(X, "^Y")) %>%
kable()
df %>% mutate(
New = paste0(X, ^{Y})) %>%
kable()
df %>% mutate(
New = paste0(X, bquote(^~{.Y}~))) %>%
kable()
感谢任何帮助。
是否用于 pdf
输出?
因为在这种情况下,以下可能有效:
library(tidyverse)
library(knitr)
df <- crossing(
X = seq(1:2),
Y = c("A", "B"))
df %>% mutate(
New = paste0(X, "\textsuperscript{", Y, "}")) %>%
kable(escape = FALSE)
使用 escape = FALSE
在 table 中添加 LaTeX。
你可以使用 tableHTML
:
df <- data.frame(
X = seq(1:2),
Y = c("A", "B"))
library(dplyr)
library(tableHTML)
您可以使用 HTML
标记 <sup>
稍微修改 X
以将 Y
显示为超集:
df %>%
mutate(X = paste0(X, "<sup>", Y, "</sup>")) %>%
select(X) %>%
tableHTML(rownames = FALSE,
escape = FALSE,
widths = 50)
编辑
正如 Steen 所指出的,这也适用于 knitr
:
df %>%
mutate(X = paste0(X, "<sup>", Y, "</sup>")) %>%
select(X) %>%
knitr::kable(escape = FALSE)
我正在尝试构建一个 table,我的一个变量后面应该有另一个变量上标。我可以在 SO 上找到几个相关的答案,但它们都涉及需要上标的固定值,而不是像我这样的向量。
此外,大多数示例都涉及情节图例,而不是 table 像我的情况(尽管我认为这没有太大区别)。
示例数据:
library(tidyverse)
library(knitr)
df <- crossing(
X = seq(1:2),
Y = c("A", "B"))
df
# A tibble: 4 x 2
X Y
<int> <chr>
1 1 A
2 1 B
3 2 A
4 2 B
我想改变一个新变量,它只是 X 后面有 Y 值上标。
这是我尝试过的方法(无效):
df %>% mutate(
New = paste0(X, "^Y")) %>%
kable()
df %>% mutate(
New = paste0(X, ^{Y})) %>%
kable()
df %>% mutate(
New = paste0(X, bquote(^~{.Y}~))) %>%
kable()
感谢任何帮助。
是否用于 pdf
输出?
因为在这种情况下,以下可能有效:
library(tidyverse)
library(knitr)
df <- crossing(
X = seq(1:2),
Y = c("A", "B"))
df %>% mutate(
New = paste0(X, "\textsuperscript{", Y, "}")) %>%
kable(escape = FALSE)
使用 escape = FALSE
在 table 中添加 LaTeX。
你可以使用 tableHTML
:
df <- data.frame(
X = seq(1:2),
Y = c("A", "B"))
library(dplyr)
library(tableHTML)
您可以使用 HTML
标记 <sup>
稍微修改 X
以将 Y
显示为超集:
df %>%
mutate(X = paste0(X, "<sup>", Y, "</sup>")) %>%
select(X) %>%
tableHTML(rownames = FALSE,
escape = FALSE,
widths = 50)
编辑
正如 Steen 所指出的,这也适用于 knitr
:
df %>%
mutate(X = paste0(X, "<sup>", Y, "</sup>")) %>%
select(X) %>%
knitr::kable(escape = FALSE)