R- knitr:kable - 是否可以隐藏选定的列?

R- knitr:kable - Is it possibe to hide selected columns?

我想在 R 中使用 knitr:kable 创建一个 table,我在其中使用多个辅助列进行条件格式化。

table (df_prices) 看起来像这样:

device    price    competion_price  
A         20       23                 
B         158      160                
C         1000     999                

我正在使用 mutate 和 cell_spec 进行条件格式化,就像这样:

df_prices%>%
  mutate(price= cell_spec(
    price, color = "grey", bold = T,
    background = ifelse(price <= competion_price, green, red) %>%
  kable(escape = F, align = "c") %>%
  kable_styling(bootstrap_options = "striped", full_width = T, position = "left",font_size = 14) %>%
   collapse_rows(columns = c(1), valign = "middle") 

这工作正常,但在最终输出中我想隐藏列“competion_price”,这样输出看起来像这样但正确突出显示:

device    price    
A         20                      
B         158                     
C         1000       

这样的事情可能吗?非常感谢您的任何建议。

使用 dplyr::select- 来删除 select 这样的列。

library(knitr)
library(kableExtra)
library(dplyr)
df_prices <- read.table(text="device    price    competion_price  
A         20       23                 
B         158      160                
C         1000     999", sep='',header=T)

df_prices %>%   
    dplyr::mutate(price= cell_spec(price, color = "grey", bold = T, background = ifelse(price <= competion_price, 'green', 'red'))) %>%
    dplyr::select(-competion_price) %>%
    kable(escape = F, align = "c") %>%
    kable_styling(bootstrap_options = "striped", full_width = T, position = "left",font_size = 14) %>%
    collapse_rows(columns = c(1), valign = "middle") 

(还对原始代码进行了一些修复以使其正常工作)

您还可以使用 kableExtra::remove_column(),从最终 kable table.

中删除选定的列

例如,这将从 table

中删除第一列
library(kableExtra)
my_table = kable(mtcars)
remove_column(my_table, 1)