【发布时间】:2019-06-26 16:22:31
【问题描述】:
我正在尝试设置一个带有彩色图块的表格,这些图块根据每列的平均值有条件地着色。基本上,如果该值低于平均值,则该图块将为红色,如果高于平均值,则该图块为绿色。我在下面的函数中使用了一个简单的 if else 语句。
我最终将使用“formattable”包和包中的 color_tile 函数。
我尝试编写自己的函数来选择颜色,但它只成功标记了我的数据框中的第一行。
#library(formattable) # not used in this example
green <- "#71CA97"
red <- "#ff7f7f"
col1 <- c(1.2, 4.2, 5.6, 7.1)
col2 <- c(5.0, 1.3, 10.3, 6.0)
col3 <- c(4.7, 6.3, 1.5, 6.3)
mydata <- data.frame(col1, col2, col3)
colorPicker <- function(x) {
if(x <= 5) {return("red")}
else {return("green")}
}
tile.colors <- lapply(c(mydata), colorPicker)
警告信息: 如果 (x 1,并且只使用第一个元素
"tile.colors" 返回正确的颜色,但仅限于第一行。
我最终会在可格式化函数中调用“tile.colors”,但现在我只是试图让颜色选择函数正确。
有没有更有效的方法来完成这项任务?
【问题讨论】:
标签: r function colors conditional-formatting formattable