我有一个(长)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")
有什么主意吗?
答案 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”。