gpt4 book ai didi

r - 你如何改变xtable markdown中某些单元格的颜色?

转载 作者:行者123 更新时间:2023-12-04 12:01:26 26 4
gpt4 key购买 nike

我有一个名为 j 的数据框:

dput(j)

structure(list(Trans = c(89.8, 3337, NA, 97.55, NA, 3558.7, NA,
4290.6, NA, 65.95, 94.55, 3495.9), `%CPU` = c(6.938, 79.853,
1.875, 4.87, 1.46, 37.885, 1.63, 64.576, 1.165, 3.425, 5.67,
33.856), `%Heap Used` = c(9.9, 76.95, 3.77, 9.8, 6.73, 59.23,
3.94, 67.38, 3.73, 9.13, 9.57, 62.11), `Heap Usage/MB` = c(263.884,
1942.246, 99.104, 257.717, 178.951, 1657.447, 99.933, 2137.134,
96.687, 242.024, 256.302, 1646.117)), .Names = c("Trans", "%CPU",
"%Heap Used", "Heap Usage/MB"), class = "data.frame", row.names = c(NA,
-12L))

如果我想根据 r markdown 中的阈值对单元格进行颜色编码,我该怎么做?

例如,如果 %CPU>70,我需要将该单元格的颜色编码为红色。

我可以像这样在 r markdown 中打印它:
print(xtable(j_cor,digits=2,row.names=FALSE,caption="JVM Usage"),caption.placement="top", tabular.environment="longtable",comment=FALSE,floating=FALSE)

但我喜欢根据阈值 r markdown 在单元格中放置颜色有什么想法吗?

我试过这样的事情,但颜色或单元格在 pdf 文件中没有改变:
j[,2] = ifelse(j[,2] < 60, paste0("\\colorbox{red}{", j[,2], "}"), j[,2])


sessionInfo()

R version 3.2.4 (2016-03-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252

attached base packages:
[1] stats4 grid stats graphics grDevices utils datasets methods base

other attached packages:
[1] ggthemes_3.4.0 flexclust_1.3-4 modeltools_0.2-21 lattice_0.20-35 tidyr_0.6.1 jsonlite_1.4 Rcpp_0.12.10 lazyeval_0.2.0
[9] knitr_1.16 gridExtra_2.0.0 xtable_1.8-0 data.table_1.9.6 cowplot_0.6.2 reshape2_1.4.1 corrplot_0.77 scales_0.4.1
[17] stringr_1.0.0 chron_2.3-47 ggplot2_2.2.1 dplyr_0.5.0 purrr_0.2.2 xml2_1.0.0 plyr_1.8.4 RCurl_1.95-4.7
[25] bitops_1.0-6 XML_3.98-1.3 httr_1.0.0 rmarkdown_1.5

loaded via a namespace (and not attached):
[1] tools_3.2.4 digest_0.6.12 evaluate_0.10 tibble_1.3.0 gtable_0.2.0 DBI_0.6-1 parallel_3.2.4 yaml_2.1.14
[9] rprojroot_1.2 R6_2.2.1 magrittr_1.5 backports_1.1.0 htmltools_0.3.5 assertthat_0.2.0 colorspace_1.3-2 labeling_0.3
[17] stringi_1.1.5 munsell_0.4.3

我已将确切文本复制到我的 Rstudio 并尝试运行它,但出现此错误:
"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS test_color.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output test_color.pdf --template "C:\R\win-library\3.2\rmarkdown\rmd\latex\default.tex" --highlight-style tango --latex-engine xelatex --variable graphics=yes --variable "geometry:margin=1in" 
! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.1 <

pandoc.exe: Error producing PDF from TeX source
Error: pandoc document conversion failed with error 43
In addition: Warning message:
running command '"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS test_color.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output test_color.pdf --template "C:\Documents\R\win-library\3.2\rmarkdown\rmd\latex\default.tex" --highlight-style tango --latex-engine xelatex --variable graphics=yes --variable "geometry:margin=1in"' had status 43

最佳答案

小心 %列名中的符号。您需要为文本指定清理函数,以处理 LaTeX 命令,并为列名指定处理百分号的函数。

使用 \cellcolor命令为 LaTeX 表中的单元格着色。

这是一个示例 .Rmd 文件

---
title: "Colors of xtable cells"
header-includes:
- \usepackage{longtable}
- \usepackage[table]{xcolor}
- \usepackage{colortbl}
output:
pdf_document
---

Build the example data set

```{r, include = FALSE}
library(xtable)
j <-
structure(list(Trans = c(89.8, 3337, NA, 97.55, NA, 3558.7, NA,
4290.6, NA, 65.95, 94.55, 3495.9), `%CPU` = c(6.938, 79.853,
1.875, 4.87, 1.46, 37.885, 1.63, 64.576, 1.165, 3.425, 5.67,
33.856), `%Heap Used` = c(9.9, 76.95, 3.77, 9.8, 6.73, 59.23,
3.94, 67.38, 3.73, 9.13, 9.57, 62.11), `Heap Usage/MB` = c(263.884,
1942.246, 99.104, 257.717, 178.951, 1657.447, 99.933, 2137.134,
96.687, 242.024, 256.302, 1646.117)), .Names = c("Trans", "%CPU",
"%Heap Used", "Heap Usage/MB"), class = "data.frame", row.names = c(NA,
-12L))
```

Create a version of the `data.frame` with red cells for \%CPU greater than 70.
Set the color and round to two digits.

```{r, include = FALSE}
j[, 2] <- ifelse(j[, 2] > 70, paste("\\cellcolor{red}{", round(j[, 2], 2), "}"), round(j[, 2], 2))
```

The resulting table is:

```{r results = "asis"}
print(xtable(j,
digits = 2,
row.names = FALSE,
caption = "JVM Usage"),
sanitize.text.function = identity,
sanitize.colnames.function = NULL,
caption.placement = "top",
tabular.environment = "longtable",
comment = FALSE,
floating=FALSE)
```

产生以下输出:

enter image description here

关于r - 你如何改变xtable markdown中某些单元格的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44335165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com