У меня есть таблица (top.table), которую я хотел бы отобразить в ggplot, но у меня проблемы с переформатированием таблицы. Мне нужно отформатировать его так, чтобы все элементы NA были пустыми и заполнялись указанными цветами только в том случае, если в элементе содержится число. В основном, заполняйте цвета, как в приведенном ниже коде, за исключением того, что элементы NA должны быть заполнены по умолчанию (белые), а текст NA должен быть удален. Если удаление NA невозможно описанным мной способом, изменение цвета / заливки текста также будет работать для меня (т.е. изменить цвет текста / заливку чисел, но не NA).
top.table <- structure(c(7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 57.5, 45.5,
NA, NA, NA, 128.5, 78.5, 71.5, 49, NA, NA, NA, 1043, NA, NA,
710, 838, 1481, 737, NA, NA, 1096, 5923, 3697, NA, 1726, NA,
NA, 3545, NA, NA, 1733, 2333, NA, 3807, 1795, NA, 2761, NA, 2887,
NA, NA, 2211, 2544), .Dim = c(11L, 5L), .Dimnames = list(NULL,
c("Sample Number", "Static", "D10 FB", "D12 FB", "D14 FB"
)))
colors <- structure(list(newcolor = c("dodgerblue2", "#E31A1C", "#FDBF6F",
"palegreen2", "skyblue2", "green4", "#6A3D9A", "#FF7F00", "gold1",
"#CAB2D6", "#FB9A99")), row.names = c(NA, -11L), class = c("tbl_df",
"tbl", "data.frame"))
tt1 <- ttheme_minimal(
core = list(bg_params = list(fill = colors, col = NA))
)
g <- tableGrob(top.table, theme = tt1)
grid.draw(g)