[R-es] Texto en color rojo en celdas especificas de una tabla
Rubén Gómez Antolí
lobo en mucharuina.com
Jue Mayo 9 02:00:37 CEST 2013
Hola a todos:
Estoy intentando poner algunos valores en rojo de una tabla que estoy
construyendo con xtable y, aunque lo tengo al alcance de los dedos, no
lo consigo.
Voy por aquí:
# Datos a poner en tabla. Contiene valores perdidos.
#
Tabla<-structure(c(4.2, 2.5, 2.5, 2.9, 2.9, 4.1, 6, 6.1, 6.8, 6.6, 6.1,
5.3, 3.9, NA, 2.3, 2.6, 3.1, 4.3, 5.1, 5.2, 6.6, 5.9, 5.8, 4.7,
3.9, 2.4, 2.4, 2.5, 2.9, 4.4, 5.7, 6.2, 6.8, 6.5, 5.7, 4.4, 3.9,
2.6, 2.2, 2.6, 3.6, 3.9, 5.7, 6.2, 6.1, 5.9, 5.9, 5.1, 2.9, 2.5,
2.3, 2.5, 3.7, 5.6, 5.3, 5.8, 6.6, 6, 5.7, 5, 3.4, 2.8, 2.1,
1.3, 3.5, NA, 6, 6.4, 6.5, 6.7, 5.5, 4.6, 3.4, 2.5, 2.6, 2.2,
2.9, 4, 5.2, 5.7, 6.8, 6.1, 5.9, 4.7, 4, 2.4, 1.9, 2.6, 3.6,
4, 5.6, 6.3, 6.8, 6.3, 5.8, 4.5, 3.8, 3, 2.1, 2.1, 2.9, 4.6,
6.3, 7, 7.8, 7.7, 6.7, 6, 3.9, 3.1, 2.2, 2.6, 3.5, 4.3, 5.7,
6.7, 6.6, 6.7, 6.3, 4.7, 4, 3, 2.4, 2.7, 3.1, 4.5, 6, 6.9, 7.4,
7.1, 6.1, 5.6, 3.7, 2.2, 2.2, 2.5, 3.5, 4.4, 5.7, 6.4, 7.2, 6.2,
5.6, 5.1, 3.2, 2.5, 2.3, 2.5, 3.2, 4.4, 5.9, 6.3, 6.3, 6.8, 5.7,
4.9, 3.6, 2.4, 2.1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4.3,
2.9, 2, 2.2, 4.1, 5.8, 5.6, 6.9, 8.3, 8, 6.8, 5.5, 4, 2.9, 1.9,
2.4, NA, 5, 6.3, 6, 7.5, NA, NA, NA, 4.4, 3.1, 2.7, 2.7, 3.8,
5.1, 7, 7, 7.7, 7.4, 6.7, 5.5, 3.7, 3.3, 2.61, 3, 4, 5.26, 6.53,
6.56, 7.94, 7.58, 6.93, 5.53, 4.1, 2.94, 2.24, 3.11, 4.14, 5.15,
6.32, 6.98, 7.98, 7.16, 6.03, 5.01, 4, 2.66, 2.2, 2.84, 3.94,
4.77, 6.13, 7.02, 6.83, 7.1, 6.63, 5.46, 4.03, 2.74, 2.47, 2.95,
3.12, 4.13, 5.84, 6.83, 7.39, 7.13, 6.79, 5.64, 3.45, 2.69, 2.52,
2.91, 3.24, 3.97, 6.17, 6.41, 7.41, 7.2, 6.68, 5.03, 4.2, 2.93,
2.48, 3.01, 3.52, 4.68, 6.27, 6.97, 7.72, 7.39, 6.34, 5.52, 3.95,
2.88, 2.41, 2.24, 3.7, 5.23, 5.63, 5.64, 7.03, 7.13, 6.42, 5.3,
3.88, 2.81, 2.48, 2.68, 3.49, 4.91, 5.19, 7.02, 7.52, 7.37, 6.15,
4.75, 3.79, 3.1, 2.52, 2.75, 3.24, 5.15, 6.29, 6.77, 7.5, 7.13,
6.44, 4.97, 3.55, 3.13, 2.37, 2.53, 3.75, 4.96, 6.27, 7.18, 7.38,
7.23, 6.5, 4.94, 4.27, 3.04, 2.09, 2.52, 2.89, 4.1, 5.97), .Tsp =
c(1982.75,
2010.25, 12), class = "ts")
#
# Cambiamos el "NA" por ROJO
Tabla[which(is.na(Tabla))]<-rep("ROJO",
length(which(is.na(Tabla))))
#
aux.tabla<-capture.output(print.xtable(xtable(Tabla)))
#
# Valores con los que vamos a rellenar, además incluye la
# expresión de Latex que los pondrá en rojo
aux.valesc<-c("\\textcolor{rojo}{ 2.85 }", "\\textcolor{rojo}{ 4.64 }",
"\\textcolor{rojo}{ 2.58 }",
"\\textcolor{rojo}{ 3.47 }", "\\textcolor{rojo}{ 4.64 }",
"\\textcolor{rojo}{ 5.81 }",
"\\textcolor{rojo}{ 6.7 }", "\\textcolor{rojo}{ 7.09 }",
"\\textcolor{rojo}{ 6.9 }",
"\\textcolor{rojo}{ 6.17 }", "\\textcolor{rojo}{ 5.07 }",
"\\textcolor{rojo}{ 3.47 }",
"\\textcolor{rojo}{ 6.9 }", "\\textcolor{rojo}{ 6.17 }",
"\\textcolor{rojo}{ 5.07 }"
)
#
Y aquí estoy, no se como sustituir los valores de aux.valesc en
aux.tabla, he probado con:
gsub("ROJO",aux.valesc,aux.tabla1)
pero no funciona ya que solo reemplaza ROJO con el primer valor de
aux.valesc.
Ya había intentado introducir el \textcolor en la variable Tabla, pero
al pasarla por xtable cambia la barra por «backslash».
La idea de hacerlo así la he sacado de aquí:
http://stackoverflow.com/questions/12148770/changing-the-color-of-negative-numbers-to-red-in-a-table-generated-with-xtable/12148962#12148962
¡Hum! ¿Quizás con el paquete Hmisc?:
http://r.789695.n4.nabble.com/Hmisc-latex-cell-background-color-td790064.html
Acepto ideas y consejos.
Gracias por vuestra atención.
Salud y Revolución.
Lobo.
--
Libertad es poder elegir en cualquier momento. Ahora yo elijo GNU/Linux,
para no atar mis manos con las cadenas del soft propietario.
Porque la libertad no es tu derecho, es tu responsabilidad.
http://www.mucharuina.com
---------
Desde El Ejido, en Almería, usuario registrado Linux #294013
http://www.counter.li.org
Más información sobre la lista de distribución R-help-es