如何使用 R 包比例将值分为正值和负值

How to bin values into positive and negative using the R package scales

我正在尝试使用包 gt (here) 构建一个 table。 gt 使用 scales 包中的颜色映射函数根据值填充 table 单元格。我试图让负值填充红色和非负值填充绿色。一个简单的例子

library(magrittr)
library(gt)

column_one <- c("Larry", "Moe", "Curly", "Bob")
column_two <- c(-500, 30000, 0, 100)

dframe <- data.frame(column_one, column_two, stringsAsFactors = FALSE)

names(dframe)[1] <- "Name"
names(dframe)[2] <- "Change"

dframe %>% gt() %>%
  data_color(
    columns=vars(Change),
    colors = scales::col_bin(
      palette = c("red", "green"),
      bins=2,
      domain = NULL
    )
  )

产生这个 table

我不想要内插的芥末黄色...只想要红色或绿色。

来自 gt 文档

The color mapping functions are: scales::col_quantile(), scales::col_bin(), scales::col_numeric(), and scales::col_factor()

任何关于如何实现这一点的帮助将不胜感激。

您可以使用 bins 指定要将数据插入的 cut-points。尝试:

library(magrittr)
library(gt)

dframe %>% gt() %>%
  data_color(
    columns = vars(Change),
    colors = scales::col_bin(
      bins = c(-Inf, 0, Inf),
      palette = c("red", "green"),
    )
  )