【问题标题】:conditional color format every second row in a column with formattable (or any other package)具有 formattable (或任何其他包)的列中每隔一行的条件颜色格式
【发布时间】:2020-06-17 20:26:39
【问题描述】:

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

我还希望在 Group 列中只包含一个双峰,同时在 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


【解决方案1】:

像这样?

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 的两行将作为一个单元格,而肥胖对应的单元格是两个单元格。
  • 那么您可以投票和/或接受答案以表明您的问题已解决;-) 对于第二个问题,抱歉,目前尚不清楚...但我认为您正在寻找一个简单的数据框操作,因此您的问题可以通过更多搜索或询问另一个特定(带有详细信息、示例和预期输出)的问题来解决。在这里查看stackoverflow.com/help/how-to-ask ;-)
猜你喜欢
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
  • 2017-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多