- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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 列且名称很长的数据框。
提前感谢您的帮助和建议。
最佳答案
为此,您需要自定义 rowCallback
函数。这是一个例子:
iris[1:6, 1:4] %>% datatable(options=list(rowCallback = JS(
'function(row, data) {
var num_data = data.slice(1,data.length)
var row_max = Math.max.apply(Math,num_data);
var row_min = Math.min.apply(Math,num_data);
for(i=1;i < data.length; i++) {
if(data[i]==row_max) {
$("td:eq("+i+")", row).css("background-color", "green")
} else if(data[i]==row_min) {
$("td:eq("+i+")", row).css("background-color", "yellow")
}
}
}')))
请注意,您需要从 num_data
中过滤掉任何文本列,包括第一个具有行名的列。
如果你想高亮显示第二高的值,你可以对 num_data
进行排序,并在 JS 代码中调整 if/else 以显示任何你想要的颜色。 num_data
排序后,num_data[num_data.length-1]
是最大值,num_data[0]
是最小值,num_data[num_data. length-2]` 是第二个最大值等
iris[1:6, 1:4] %>% datatable(options=list(rowCallback = JS(
'function(row, data) {
var num_data = data.slice(1,data.length)
num_data.sort(function (a, b) { return a - b; });
for(i=1;i < data.length; i++) {
if(data[i]==num_data[num_data.length-1]) {
$("td:eq("+i+")", row).css("background-color", "green")
} else if(data[i]==num_data[0]) {
$("td:eq("+i+")", row).css("background-color", "yellow")
} else if(data[i]==num_data[num_data.length-2]) {
$("td:eq("+i+")", row).css("background-color", "orange")
}
}
}')))
关于R 包 DT - 如何突出显示每行最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43522147/
我有一个类为.dt-horizonal 的描述列表,其中我确保dt 内容不会被以下this 截断|发布并增加宽度。它工作正常,但是当有一个空的 dt 时它不起作用,因此下一个 dd(Canada)
当我运行以下代码时,我只得到 1 或 2 行数据。如何增加显示的行数?谢谢! --- title: " File Analysis" output: html_docu
我使用标签 DL-DT-DD 在网站上列出商店信息。该信息将由服务器生成并放置。 Shop Name US Master Autos Toll Free Not Available Fax (30
更新 我正在尝试使用 shiny 和 DT 制作应用,similar to the accepted answer from Shree here .你,我想添加以下内容: 扩展 Shree 的解决方
我有这个标记: Lot Size 324 sq. meters Baths 2 Full Description
有没有可能得到这个样子 来自这段代码(使用 CSS?) Latitude 50.0 Longitude 100.0 h (metres) 0.000 Vφ (mm/y) -6.4 Vλ (mm/y)
我正在做一些计算和行操作,并意识到对于某些任务,例如数学运算,它们都有效,例如 d['c3'] = d.c1 / d. c2 d['c3'] = d['c1'] / d['c2'] 我想知道是否在某些
我可以使用从任意模块转储类型 dt modulename!type 在某些情况下,我看到例如 dt nt!_TEB (并且它有效)尽管该模块名为 ntdll: 0:001> lm m nt start
我正在尝试制作一个交互式表格,总结在多项研究中测试的结果的最高结果,我还希望用户通过子行访问更详细的结果。主表中仅显示具有最小 p 值的“顶级”模型。 现在我将相关结果分为两个数据框:1. 仅顶部结果
Shiny 似乎改变了数据表的实现。这是什么原因? 除非我遗漏了什么,否则新的默认值看起来像是倒退了一步。一方面,他们缺少表格底部的特定于列的搜索框。有没有办法替换该功能? 最佳答案 它当然仍然存在,
所以我有一个类似这样的 dl 列表: .title { display: inline-block; padding-bottom: 20px; } dd { -moz-margin-st
我正在使用 PostgreSQL 8.4.20 版。由于工作问题和上面运行的现有数据库,我无法升级它。 我创建了一个如下所示的模式: -- -- Name: Bug Tracking; Type: C
我正在寻找类似 hive 的东西 Select * from table 1 where dt > (Select max(dt) from table2) 显然,hive 不支持 where 子句中
我的数据存储方式的示例 df: df = pd.DataFrame({'DOB': {0: '2003-01-01 00:00:00+00', 1: '2003-01-02 00:00:00+00'}
我想列出一个定义列表与 一列中的元素及其对应的 另一个元素。 棘手的部分是我想要我的 s 永远不会换行,如果它们对于第一列来说太宽,我想要 元素向下移动以腾出空间: 这是我的目标的屏幕截图: 这是
在我开始这个问题之前,我使用 P0、P1、P2 和 P3 作为四个立方贝塞尔曲线点,并且使用“t”因为它是参数化的。另外,我在这个网站和谷歌上搜索过类似的问题,但没有找到。如果这是一个常见问题,我深表
我正在尝试将两个常用共享的 JS 回调组合到一个 R 数据表 Shiny 应用程序(具有单选按钮(参见 https://yihui.shinyapps.io/DT-radio/ 和 Extractin
我正在尝试垂直滚动,但这不起作用,有人可以解释原因吗?我还想默认一次显示 20 行。 谢谢 title: "Untitled" output: flexdashboard::flex_dashbo
是否可以在 Rstudio DT 数据表中在标题参数中添加超链接?我已经尝试了很多次,但我似乎无法让任何事情发挥作用。我尝试了 w3schools fiddle 的 html 标题,我可以获得一个在表
是否可以在 Rstudio DT 数据表中在标题参数中添加超链接?我已经尝试了很多次,但我似乎无法让任何事情发挥作用。我尝试了 w3schools fiddle 的 html 标题,我可以获得一个在表
我是一名优秀的程序员,十分优秀!