如何在R的reactable中为特定行(如Petal.Width<0.2)显示图标?
在reactable中仅为特定行添加警告图标
要实现只给iris数据集里Petal.Width < 0.2的行显示警告图标,不用icon_sets(它会给所有行生成图标),改用colDef的cell参数自定义单元格内容就行,具体代码如下:
# 加载所需包 library(reactable) library(htmltools) # 创建表格 reactable(iris, columns = list( Petal.Width = colDef( cell = function(value, index) { # 判断当前行的Petal.Width是否小于0.2 if (value < 0.2) { # 返回警告图标+数值,用htmltools的icon函数生成图标 tags$span(icon("exclamation-triangle", class = "text-warning"), value) } else { # 不满足条件时只显示原始数值 value } } ) ) )
代码说明:
htmltools::icon生成的警告图标,搭配text-warning类可让图标显示为黄色(reactable默认支持bootstrap样式)cell函数的value参数是当前单元格的数值,直接用它判断条件即可- 不满足条件的行仅展示原始的
Petal.Width数值,不会出现图标
如果想单独新增一列专门显示警告图标,代码可以这么改:
reactable(iris, columns = list( 警告提示 = colDef( cell = function(value, index) { if (iris$Petal.Width[index] < 0.2) { icon("exclamation-triangle", class = "text-warning") } else { NULL } }, width = 70 ) ) )
这样只有符合条件的行才会在新增列显示警告图标,其余行该列为空。
内容的提问来源于stack exchange,提问作者RTIMI Anass
相关产品推荐
相关产品推荐

