таблица для печати с частичным выделением жирным шрифтом / курсивом внутри ячейки - PullRequest
0 голосов
/ 12 декабря 2018

Я ищу способ распечатать таблицу из R, но с форматированием внутри ячейки, например, выделение текста внутри ячейки жирным шрифтом или курсивом.Обычно я сначала делаю соответствующий data.frame / tibble, а затем форматирую и печатаю его, используя пакет типа huxtable или kable.Просматривая документацию для huxtable или kableExtra, кажется, что оба пакета обрабатывают форматирование как свойства ячеек, подразумевая, что внутрисотовое форматирование либо не поддерживается, либо должно быть реализованокаким-то другим способом.

Если бы я делал ggplot, я бы использовал expression для форматирования текста, например

library(tidyverse)

ggplot(data=mtcars) +
  ggtitle(expression(paste(bold("bold part"), " not bold part")))

Iдумал, что я мог бы быть умным, помещая выражения в data.frame, но это не поддерживается:

data.frame(var = c(expression(paste(bold("bold part"), "not bold part")),
                   expression(paste(bold("bold part"), "not bold part"))
))
#> Error in as.data.frame.default(x[[i]], optional = TRUE): cannot coerce class ""expression"" to a data.frame

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Re huxtable, вы правы, но вы можете обойти это.Вот пример с 1 строкой и 1 столбцом, при условии, что вы печатаете в HTML:

my_hux <- huxtable("<b>Bold part</b> Not bold part") escape_contents(my_hux)[1, 1] <- FALSE

Вы можете включить произвольный HTML.Нечто подобное будет работать для TeX, очевидно, вместо форматирования TeX.

0 голосов
/ 12 декабря 2018

Если вы хотите внести изменения в таблицы данных, я рекомендую использовать пакеты grid и gridExtra для создания таблицы, а затем вносить изменения в параметры темы.

Без данных для воспроизведенияЯ не могу точно понять, что вы хотите, но вот общее представление о том, что вы могли бы сделать (см. ниже).Я включил другие эстетические параметры, для дальнейшего использования.

Затем вы можете сгенерировать вывод PDF в ваш диск C, который затем можно будет распечатать.

d <- data.frame(A = c(1,2,3,4,5),
                B = c(6,7,8,9,10),
                C = c(11,12,13,14,15))

pdf("Test.pdf", height = 11, width = 10)
grid.table(d, rows = NULL, theme = ttheme_minimal(
core=list(fg_params=list(
hjust=0, 
x=0.1, 
fontface=matrix(c(1,2,3)))))) 
dev.off()

enter image description here

...