R условное форматирование сюжетных таблиц - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу условно отформатировать строки в таблицах. Если столбец имеет 1, то столбец должен быть выделен, иначе нет. Я хочу сделать это по сюжету. Данные как:

Name Purchased
a    0
b    1
c    0
d    1

Я хочу выделить строку с именами b и d.

Я использую следующий тип кода с заговором:

plot_ly(
          type = 'table',
          columnwidth = c(100, 100, 100),
          columnorder = c(0, 1, 2),
          header = list(
            values =  c(A,B),
            align = c("center", "center"),
            line = list(width = 1, color = 'black'),
            fill = list(color = c("grey", "grey")),
            font = list(family = "Arial", size = 14, color = "white")
          ),
          cells = list(
            values = rbind(df[[A]],df[[B]]),
            align = c("center", "center"),
            line = list(color = "black", width = 1),
            font = list(family = "Arial", size = 12, color = c("black"))
          ))

Я пишу этот код для R блестящего приложения. Пожалуйста, дайте мне знать, как я могу это сделать.

1 Ответ

0 голосов
/ 04 марта 2020

Я бы добавил переменную highlight в исходный набор данных для каждой строки, которая должна быть выделена.

df <- df %>% 
  mutate(highlgt = ifelse(Purchased == 1, "lightblue", "white"))

Затем в аргументе cells обновите значение fill списком значений highlight.
(я также изменил значения header/values и cells/values на избегайте сообщений об ошибках).

plot_ly(
  type = 'table',
  columnwidth = c(100, 100),
  #columnorder = c(0, 1, 2),
  header = list(
    values =  c("A","B"),
    align = c("center", "center"),
    line = list(width = 1, color = 'black'),
    fill = list(color = c("grey", "grey")),
    font = list(family = "Arial", size = 14, color = "white")
  ),
  cells = list(
    values = rbind(df[[1]], df[[2]]),
    align = c("center", "center"),
    line = list(color = "black", width = 1),
    font = list(family = "Arial", size = 12, color = c("black")),
    fill = list(color = list(df$highlgt))   # highlight rows
  ))

plotly_table_highlight_rows

...