R в латекс - раскраска номера автоматически - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть (длинная) матрица 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 голосов
/ 03 ноября 2018

Я наконец нашел грязное решение

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». Если не изменение, внесенное в течение этого цикла j, изменить матрицу [, i] на символьный вектор, и тогда невозможно повторно вычислить квантиль. </p>

Не забудьте "sanitize.text.function = identity" в печати.

...