我正在尝试设置一个带有彩色图块的表格,这些图块根据每列的平均值有条件地着色。基本上,如果该值低于平均值,则该图块将为红色,如果高于平均值,则该图块为绿色。我在下面的函数中使用了一个简单的 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)
警告消息:在 if (x <= 5) { 中:条件的长度 > 1,并且只使用第一个元素
“tile.colors”返回正确的颜色,但仅限于第一行。
我最终会在格式化函数中调用“tile.colors”,但现在我只是想让颜色选择函数正确。
有没有更有效的方法来完成这项任务?