条件颜色格式每列中的第二行带有 formattable(或任何其他包)

conditional color format every second row in a column with formattable (or any other package)

我有数据 table 类似于下面的数据(原始数据是 10 列和 34 行)。我想根据每个单元格中的值有条件地对每一行进行颜色格式化。所有带有数字的行的格式都应为 (35, 25, 20)。

我还想在“组”列中只保留每个双联体中的一个,同时将它们引用的两行都保留在“肥胖”列中。不知道可不可以。

>df
Group    Obesity       
1.a      1(ref)          
1.a      35             
2.b      0.6 (0.5,0.7)         
2.b      25              
3.c      0.7 (0.6,0.9)           
3.c      20

这是适用于普通数字列的代码,它也适用于示例数据,但颜色不正确。

formattable(df, list(
      Obesity = color_tile("darkorange",  "white") 

    )) 

可重现的数据

 df <- data.frame(Group = c("1.a","1.a","2.b","2.b","3.c","3.c"),
                  Obesity = c("1(ref)",35,"0.6 (0.5,0.7)",25,"0.7 (0.6,0.9)",20),
                  stringsAsFactors = FALSE)

像这样?

df = data.frame(Group = c('1.a', '1.a', '2.b', '2.b', '3.c', '3.c'),
                Obesity = c('1(ref)', 35, '0.6 (0.5, 0.7)', 25, '0.7 (0.6, 0.9)', 20))
library(formattable)
formattable(df, list(area(row = seq(2, nrow(df), by=2), col = Obesity) ~ 
                       color_tile("transparent", "pink")))

PS:确实,这个问题可以用更清楚的方式提出;-)