r уценка, символы knitr и латекса - PullRequest
0 голосов
/ 12 ноября 2018

После нескольких часов поисков ответа безрезультатно, я подумал, что буду искать здесь совет.

Я пытаюсь создать несколько очень простых HTML-таблиц, используя knitr в r markdown, но я не могу заставить латексные символы правильно отображаться в именах столбцов.

Пример кода с несколькими различными символами:

kable(data.frame("$^3$" = "a",
                  "$\\epsilon^2$" = "b",
                  "$%$" = "c"),
                  escape = F)

Here's the output

Как видите, имена столбцов не отформатированы X..3. X..epsilon.2. X...

Любая помощь будет высоко ценится

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы можете использовать эти имена столбцов во фрейме данных, но вы должны указать функции data.frame не манипулировать ими, используя check.names = FALSE. Однако этого недостаточно для исправления вашего примера, потому что $%$ не является допустимым LaTeX. Вам нужно экранировать знак процента, иначе он будет принят за комментарий. Так что это работает:

my_data <- data.frame("$^3$" = "a",
                      "$\\epsilon^2$" = "b",
                      "$\\%$" = "c",
                      check.names = FALSE)
kable(my_data)

enter image description here

0 голосов
/ 12 ноября 2018

Вы можете установить col.names в вашем kable звонке. Он не работает в вашем вызове data.frame, потому что это не позволяет именам столбцов, которые не начинаются с точки или буквы. Вы можете увидеть это здесь:

my_data <- data.frame("$^3$" = "a",
                      "$\\epsilon^2$" = "b",
                      "$%$" = "c")
my_data
  X..3. X..epsilon.2. X...
1     a             b    c

Решение:

kable(my_data, escape = F, 
      col.names = c("$^3$", "$\\epsilon^2$", "$%$"))

enter image description here

Возможно, вы захотите использовать \varepsilon вместо \epsilon, поскольку это дает более хороший эпсилон (по моему мнению).

kable(my_data, escape = F, 
      col.names = c("$^3$", "$\\varepsilon^2$", "$%$"))

enter image description here

...