首页 > 解决方案 > R markdown:以颜色打印 data.table 或矩阵的选定条目

问题描述

我有一个这样的data.table:

my.data.table <- data.table(a = c(1,-2),
                            b = c(-3,4))

使用 R markdown 到 PDF(乳胶),如何打印my.data.table,以便所有负数都以红色打印,而正数和列标题保持黑色?矩阵的类似解决方案也可以。

标签: rmatrixcolorsdata.tabler-markdown

解决方案


您可以按照官方文档尝试kableExtra解决方案:

---
title: "kableExtra with cell_spec"
author: "bttomio"
date: "3/26/2021"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(kableExtra)
library(data.table)
```

# data.table

```{r echo=F}
my.data.table <- data.table(a = c(1,-2),
                            b = c(-3,4))

my.data.table$a <- cell_spec(my.data.table$a, 
                            color = ifelse(my.data.table$a>0, "black", "red"))

my.data.table$b <- cell_spec(my.data.table$b, 
                            color = ifelse(my.data.table$b>0, "black", "red"))

kbl(my.data.table, 'latex', booktabs = T, escape = F)
```

# matrix

```{r echo=F}
my.data.table <- matrix(c(1,-2,-3,4), nrow = 2,
                        dimnames = list(c("1", "2"), c("a", "b")))

my.data.table[,1] <- cell_spec(my.data.table[,1], 
                            color = ifelse(my.data.table[,1]>0, "black", "red"))

my.data.table[,2] <- cell_spec(my.data.table[,2], 
                            color = ifelse(my.data.table[,2]>0, "black", "red"))

kbl(my.data.table, 'latex', booktabs = T, escape = F)
```

-输出

在此处输入图像描述


推荐阅读