Я хочу раскрасить ячейки в таблице латекса, созданной с помощью xtable
. У меня есть фрейм данных, который выглядит так:
a <- data.frame(a=c(seq(1:100)),b=c(seq(1:100)),b=c(seq(1:100)))
Теперь я хочу, чтобы каждая ячейка была окрашена индивидуально в зависимости от ее значения. Для этого я создал следующую функцию:
formatting<-function(x){ifelse(x<50,paste("\\cellcolor{red}{",x,"}"),x)
ifelse(x>=50&x<=80,paste("\\cellcolor{yellow}{",x,"}"),x)
ifelse(x>=80,paste("\\cellcolor{green}{",x,"}"),x)
}
Однако применение lapply
к этому фрейму данных с моей функцией выполняет только последнюю строку функции (окрашивание в зеленый цвет)
a <- data.frame(lapply(a, FUN=formatting))
В основном я хочу, чтобы значения ‹50 отображались красным (\\cellcolor{red}{",x,"}")
, значения между 50-80 желтым (\\cellcolor{yellow}{",x,"}")
, и значения выше 80 зеленым (\\cellcolor{green}{",x,"}")
Что не так в моей функции? Я также заметил, что если бы я создал функцию для каждого цвета индивидуально, я бы столкнулся с предупреждением:
red<-function(x){ifelse(x<50,paste("\\cellcolor{red}{",x,"}"),x)}
yellow<-function(x){ifelse(x>=50&x<=80,paste("\\cellcolor{yellow}{",x,"}"),x)}
green<-function(x){ifelse(x>=80,paste("\\cellcolor{green}{",x,"}"),x)}
a <- data.frame(lapply(a, FUN=red))
a <- data.frame(lapply(a, FUN=yellow))
a <- data.frame(lapply(a, FUN=green))
Warning message:
1: In Ops.factor(x, 50) : >= not meaningful for factors
Кто-нибудь может мне с этим помочь?
Я немного поигрался со следующим кодом:
resistant<-function(x){ifelse((x>=0&x<50),paste("\\cellcolor{red}{",x,"}"),x)}
intermediate<-function(x){ifelse((x>=50&x<80),paste("\\cellcolor{yellow}{",x,"}"),x)}
susceptible<-function(x){ifelse((x>=80&x<=100),paste("\\cellcolor{green}{",x,"}"),x)}
a<-as.data.frame(apply(a,2, FUN=resistant))
a<-as.data.frame(apply(a,2, FUN=intermediate))
a<-as.data.frame(apply(a,2, FUN=susceptible))
Однако кажется, что только последняя строка не выполняется должным образом. Почему?