В gt: Выбор ячеек для форматирования на основе относительного положения ячеек и столбцов, а не буквального имени столбца

#r #tidyverse #gt

#r #tidyverse #гт

Вопрос:

В приведенном ниже примере таблица 1 является рабочим примером, в котором имя столбца указывается непосредственно в спецификации строки. Это дает желаемый результат, но я не хочу напрямую называть имена столбцов. Вместо этого я хочу ссылаться на них косвенно (потому что я использовал этот код для многих таблиц одних и тех же измерений, но с разными именами. таблица 2 пытается это сделать, но не работает. Есть ли правильный способ достичь моей цели?

 df lt;- data.frame(colA = c(5, 10), colB = c(8, 9)) table1 lt;- df %gt;%  gt() %gt;%  tab_style(style = cell_text(color = "red"),  locations = cells_body(columns = colB,  rows = colB gt;8)) table1   table2 lt;- df %gt;%  gt() %gt;%  tab_style(style = cell_text(color = "red"),  locations = cells_body(columns = ends_with("B"),  rows = last_col() gt;8)) table2  

Ответ №1:

Вам необходимо предоставить полную инструкцию select:

 my_col lt;- names(df %gt;% select(ends_with("B")))  table2 lt;- df %gt;%  gt() %gt;%  tab_style(  style = cell_text(color = "red"),  locations = cells_body(  columns = all_of(my_col),  rows = !!sym(my_col) gt; 8)) table2