У меня есть 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
Изображение одной из таблиц:
И данные для этой соответствующей таблицы:
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)
Но они перекрывают друг друга и не имеют условного выделения, которое мне было бы нужно. Если есть способ сделать это, это было бы оптимальным