一次对所有列应用可格式化的格式

问题描述

我想将数据框转换为可格式化的表格,并为每一列添加自定义格式。有没有办法将格式应用于所有列而无需专门调用它们?以下是一些示例代码,用于解释我目前拥有的内容

library(formattable)    

# create df
col1 <- c(0,-2,4)
col2 <- c(-1,2)
col3 <- c(-1,-1,0)
df <- data.frame(col1,col2,col3)

# set colors
red <- "#ff7f7f"
blue <- "#7f9dff"
white <- "#ffffff"

# add custom format
color_format <- formatter('span',style = x ~ style(color = ifelse(x > 0,blue,ifelse(x < 0,red,white))))

# create table
formattable(df,list("col1" = color_format,"col2" = color_format,"col3" = color_format))

我还有几个列,它们的名称有时会改变,所以我需要一种方法来不手动调用每一列。

解决方法

尝试使用lapply

myForm <- function(x) {
              formatter('span',style = x ~ style(
                          color = ifelse(x > 0,blue,ifelse(x < 0,red,white))
                        ))
}
formattable(df,lapply(df,myForm))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...