R到乳胶-自动为数字着色

时间:2018-11-02 18:15:35

标签: r colors latex xtable

我有一个(长)R矩阵。例如:

matrix <- matrix(rexp(200, rate=.01), ncol=4)

我想找到一种着色方法,例如,每列的重要数字增加15%,之前进行乳胶提取,如下所示:

print(xtable(matrix, align = c("r","r","r","r","r")),
type = "latex",
floating = FALSE,
tabular.environment = "longtable")

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

我终于找到了一个肮脏的解决方案

matrix <- as.data.frame(matrix(rexp(200, rate=.01), ncol=4))

设置循环

for(i in 1:length(matrix[1,])) {
quant  <- quantile(matrix[,i], prob = 0.85, na.rm = TRUE)   
   for(j in 1:length(matrix[,1])) {         
       if(as.numeric(matrix[j,i]) > quant) {
       matrix[j,i] <- paste("\\cellcolor{red!25}", matrix[j,i], sep="", collapse = NULL)} 
       else {}  
} } # close both loops

然后在乳胶中打印结果

print(xtable(matrix), 
      type = "latex",
      sanitize.text.function = identity)

它给出可接受的结果。重要的是设置:在“ j”循环之前设置“ quant <-分位数”。如果不是,则在此“ j”循环中进行的更改会将matrix [,i]更改为字符向量,因此无法重新计算分位数。

不要忘记打印中的“ sanitize.text.function = identity”。