【发布时间】:2017-09-17 05:49:18
【问题描述】:
在 R 中使用 DT 包,我想突出显示每行的最大/最小值,用于数字数据帧。
假设我们用 6 个集群构建了分割,然后我们想用描述性变量来描述这些集群:
library(DT)
library(tidyverse)
df <- iris[1:6, 1:4] %>% t()
(df)
# 1 2 3 4 5 6
# Sepal.Length 5.1 4.9 4.7 4.6 5.0 5.4
# Sepal.Width 3.5 3.0 3.2 3.1 3.6 3.9
# Petal.Length 1.4 1.4 1.3 1.5 1.4 1.7
# Petal.Width 0.2 0.2 0.2 0.2 0.2 0.4
我们希望可视化哪些集群具有最高的 Sepal.Length,哪些集群具有最高的 Sepal.Width,等等。解决方案将是每行的颜色最大值。
如果我使用 DT 包的 formatStyle() 函数,我可以按列(突出最大值,根据特定间隔的颜色值,...) ,但我不能每行都这样做。即使我使用参数target = 'row',整个行也会被着色,而不仅仅是最大值或我想要的单元格。
df %>% datatable() %>%
formatStyle('1', background = styleEqual(max(df[,1]), 'green'))
另一种方法是转换我的数据框的行和列,但我更喜欢使用 50 行和 5 列的数据框,而不是名称很长的 5 行和 50 列的数据框。
提前感谢您的帮助和建议。
【问题讨论】: