Как вы рисуете R форматируемые объекты? - PullRequest
0 голосов
/ 09 января 2019

У меня есть 3 таблицы текста / чисел, которые я хотел бы построить вертикально. Они определены так же, но названы последовательно (pq2_plot и pq3_plot)

pq1_plot <- formattable(pq1_diffs, list(sla_diff = formatter("span", style = function(x) ifelse(x < 0 , "color:red", "color:green")),
                    bslc_diff = formatter("span", style = function(x) ifelse(x < 0 , "color:red", "color:green")),
                    sum17_diff = formatter("span", style = function(x) ifelse(x < 0 , "color:red", "color:green"))
                    )
            )

Если неясно, фрейм данных состоит всего из 4 столбцов. Я пробовал следующие два метода с pq1_plot сверху:

par(mfrow=c(3,1))
plot(pq1_plot)
plot(pq2_plot)
plot(pq3_plot)

также пробовал:

ggpubr::ggarrange(pq1_plot, pq2_plot, pq3_plot, 
                  heights = c(5, 9, 13), 
                  nrow = 3, 
                  align = "v")

У меня есть несколько сюжетов из другого скрипта, который использовал ggpubr, поэтому я хотел попробовать. Этот дает следующую ошибку: Argument needs to be of class "ggplot", "gtable", "grob", "recordedplot", or a function that plots to an R graphicsdevice when called, but is a formattabledata.frame

Изображение одной из таблиц:

enter image description here

И данные для этой соответствующей таблицы:

structure(list(mean_2018 = c(4, 2.75, 3.87, 3.8, 3), sla_diff = c(0.18, -0.72, 0.14, 0.44, -0.58), bslc_diff = c(0.3, -0.69, 0.23, 0.49, -0.45), sum17_diff = c(0, -0.5, 0.48, 0.8, -0.33)), row.names = c(NA, -5L), class = "data.frame")

Итак, я могу построить базовую таблицу следующим образом:

pq1 <- tableGrob(pq1_plot)
pq2 <- tableGrob(pq2_plot)
pq3 <- tableGrob(pq1_plot)
grid.arrange(pq1, pq2, pq3, nrow=3, ncol=1)

Но они перекрывают друг друга и не имеют условного выделения, которое мне было бы нужно. Если есть способ сделать это, это было бы оптимальным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...