Несколько условий переданы в cell_spec () kableExtra - PullRequest
0 голосов
/ 01 декабря 2019

Я создаю интерактивный Rmd для записи в блоге, которую я пишу, но не могу заставить cell_spec () kableExtra сотрудничать (скорее, я не буду сотрудничать с ним!). Просто я хотел бы отформатировать ячейки в реактивной таблице, чтобы они были либо зелеными, либо красными в зависимости от двух условий. Тем не менее, это работает только для первого столбца, который я мутирую, в этом случае «DrugA»Вот воспроизводимый пример:

my_df <- data.frame(
  analysis = c("Expected Loss", "Proportion Cost Effective"),
  DrugA = c(380, 0.55),
  DrugB = c(300, 0.45)
)  %>% 
  mutate(
    DrugA = cell_spec(DrugA,
                      "html",
                      color = ifelse(DrugA < DrugB & analysis == "Expected Loss" | DrugA > DrugB & analysis == "Proportion Cost Effective",
                                                    "green",
                                                    "red")),
    DrugB = cell_spec(DrugB,
                      "html",
                      color = ifelse(DrugB < DrugA & analysis == "Expected Loss" | DrugB > DrugA & analysis == "Proportion Cost Effective",
                                     "green", "red"))
    ) %>% 
  kable("html", escape = FALSE) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))

Конечно, если бы он не был реактивным, я мог бы напечатать html на консоль и вставить его в Rmd;хотя таблица должна быть реактивной.

Я попытался поместить cell_spec () в разные форматы ... Например, я попытался:

                    DrugA = ifelse(DrugA<DrugB & analysis == "Expected Loss" | DrugA>DrugB & analysis == "Proportion Cost Effective",
                                  cell_spec(DrugA, "html", color = "green"),
                                  cell_spec(DrugA, "html", color = "red")),
                    DrugB = ifelse(DrugB<DrugA & analysis == "Expected Loss" | DrugB>DrugA & analysis == "Proportion Cost Effective",
                                  cell_spec(DrugB, "html", color = "green"),
                                  cell_spec(DrugB, "html", color = "red"))

Мысли?

...