使用formattable(或任何其他软件包)在列中每隔一行设置条件颜色格式

使用formattable(或任何其他软件包)在列中每隔一行设置条件颜色格式,r,conditional-formatting,formattable,R,Conditional Formatting,Formattable,我有一个类似于下面的数据表(原来是10列34行)。我希望根据每个单元格中的值有条件地设置每一行的颜色格式。所有带有数字的行都应格式化(35、25、20) 我还希望在Group列中只包含每个doublet中的一个,同时在Group列中保留它们引用的两行。我不知道这是否可能 >df Group Obesity 1.a 1(ref) 1.a 35 2.b 0.6 (0.5,0.7)

我有一个类似于下面的数据表(原来是10列34行)。我希望根据每个单元格中的值有条件地设置每一行的颜色格式。所有带有数字的行都应格式化(35、25、20)

我还希望在Group列中只包含每个doublet中的一个,同时在Group列中保留它们引用的两行。我不知道这是否可能

>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:事实上,这个问题可以用更清晰的方式来提问;-)

像这样

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:事实上,这个问题可以用更清晰的方式来提问;-)

不可理解的描述。请重新表述。尝试重新表述一点,为了清楚起见,请参阅其他注释。这是一个不可理解的描述。请重新表述。尝试重新表述一点,为了清楚起见,请参阅其他注释。非常感谢!这是主要问题。第二个不清楚的问题是,是否有可能合并具有相同名称的组。因此,包含1.a的两行将作为一个单元格,而肥胖对应的单元格是两个单元格。然后您可以向上投票和/或接受答案,以表明您的问题已解决;-)对于第二个问题,很抱歉还不清楚。。。但我认为您正在寻找一个简单的数据帧操作,因此您的问题可以通过更多的搜索或询问另一个具体的(带有细节、示例和预期输出)问题来解决。检查这里;-)非常感谢!这是主要问题。第二个不清楚的问题是,是否有可能合并具有相同名称的组。因此,包含1.a的两行将作为一个单元格,而肥胖对应的单元格是两个单元格。然后您可以向上投票和/或接受答案,以表明您的问题已解决;-)对于第二个问题,很抱歉还不清楚。。。但我认为您正在寻找一个简单的数据帧操作,因此您的问题可以通过更多的搜索或询问另一个具体的(带有细节、示例和预期输出)问题来解决。检查这里;-)