具有格式表(或任何其他程序包)的列中每隔第二行的条件颜色格式

问题描述 投票:1回答:2

我有一个与下面的数据表相似的数据表(原始数据为10列34行)。我想有条件地基于每个单元格中的值每隔第二行设置颜色格式。所有带有数字的行都应设置格式(35、25、20)。

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

>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)
r conditional-formatting formattable
2个回答
0
投票

如何在三列中重塑数据框并创建包含每一行数值的第三列?

类似的东西:

df <- aggregate(Obesity ~ Group, data = df, I)
colnames(df) <- c("Group","Obesity_ref","Obesity_value")

library(formattable)
formattable(df, list(
  Obesity_value = color_tile("darkorange",  "white"))) 

enter image description here

可复制数据

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)

0
投票

喜欢吗?

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")))

enter image description here

PS:的确,可以用更清晰的方式提出问题;-)

© www.soinside.com 2019 - 2024. All rights reserved.