【问题标题】:Conditional Formatting of Flextable Correlation TableFlextable相关表的条件格式
【发布时间】:2021-02-12 15:33:52
【问题描述】:

我正在寻找一种方法来条件格式化flextable 中的相关矩阵,以便在给定特定值(例如 .5)的情况下突出显示高于该值的单元格。我已经查看了以前关于 SO 的条件格式问题,但无法实施解决方案。这是我的代表,它最终突出了所有单元格:

my_data <- mtcars[, c(1,3,4,5,6,7)] #data
res <- cor(my_data) #initial correlation matrix

res[upper.tri(res)] <- NA # erase the upper triangle
diag(res) <- NA 

res %>%
  as.data.frame() %>%
  rownames_to_column("var") %>%
  flextable::flextable() %>%
  flextable::bg(i = rownames(res) > .5, j = 2:ncol(res), bg = "light blue")

【问题讨论】:

    标签: r flextable


    【解决方案1】:

    这是一个可能的解决方案:

    library(flextable)
    library(magrittr)
    library(tibble)
    
    my_data <- mtcars[, c(1,3,4,5,6,7)] #data
    res <- cor(my_data) #initial correlation matrix
    
    res[upper.tri(res)] <- NA # erase the upper triangle
    diag(res) <- NA 
    
    res %>%
      as.data.frame() %>%
      rownames_to_column("var") %>%
      flextable::flextable() %>%
      flextable::bg(j = 2:ncol(res), 
                    bg = function(x){
                      out <- rep("transparent", length(x))
                      out[x < .5] <- "light blue"
                      out
                    })
    

    【讨论】:

    • 行得通!只是为了帮助理解它,在函数中,x 是代表每一行、每一列还是整个 df?
    • 这是一个列循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多