varias una tablas tabla superponer studio programacion graficos graficas filas eliminar ejemplos como r latex tex sweave xtable

una - tablas en r



Cómo poner una nueva línea en un encabezado de columna en una tabla en R (2)

La mejor manera que he encontrado para hacer esto es indicar la columna de la tabla como una columna de "ancho fijo" para que el texto dentro de ella se ajuste. Con el paquete xtable , esto se puede hacer con:

align( calqc_xtable ) <- c( ''l'', ''p{1.5in}'', rep(''c'',5) )

xtable exige que proporcione una alineación para la columna de "nombres conocidos" de la opción: esta es la especificación inicial. La especificación de la sección, p{1.5in} , se usa para el encabezado de su primera columna, que es bastante largo. Esto lo limita a una caja de 1.5 pulgadas de ancho y el encabezado se ajustará en varias líneas si es necesario. Las cinco columnas restantes se establecen centradas utilizando el especificador c .

Un problema importante con las columnas de ancho fijo como p{1.5in} es que configuran el texto usando una alineación justificada . Esto hace que el espaciado entre palabras en cada línea se expanda de tal manera que la línea se llene la totalidad de las 1.5 pulgadas asignadas.

Francamente, en la mayoría de los casos, esto produce resultados que no puedo describir usando un lenguaje cortés (soy un fanático de la tipografía de aficionados y este tipo de comportamiento causa garrapatas faciales).

La solución es proporcionar un comando de alineación de látex anteponiendo un campo >{} a la especificación de la columna:

align( calqc_xtable ) <- c( ''l'', ''>{//centering}p{1.5in}'', rep(''c'',4) )

Otros comandos de alineación útiles son:

  • / raggedright -> hace que el texto se alinee a la izquierda
  • / raggedleft -> hace que el texto esté alineado a la derecha

Recuerda doblar las barras invertidas para escapar de ellas en R cadenas. También es posible que deba desactivar la función de saneamiento de cadenas que utiliza xtable de forma predeterminada.

Nota

Esta técnica de alineación fallará si se usa en la última columna de una tabla a menos que las filas de la tabla /tabularnewline con /tabularnewline lugar de // , lo que creo que no es el caso de xtable y no es fácilmente personalizable a través de cualquier opción configurable por el usuario.

La otra cosa a considerar es que es posible que no desee que toda la columna se ajuste a la línea a 1,5 pulgadas y se centre, solo el encabezado. En ese caso, deshabilite el xtable cadena xtable y configure su encabezado usando una celda /multicolumn de ancho 1:

names(calqc_table)[1]<-"//multicolumn{1}{>{//centering}p{1.5in}}{Identifier of the Run within the Study}"

Tengo un marco de datos que coloco en un documento de sweave usando xtable, sin embargo, uno de mis nombres de columna es bastante largo, y me gustaría dividirlo en dos líneas para ahorrar espacio

calqc_table<-structure(list(RUNID = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), ANALYTEINDEX = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), ID = structure(1:11, .Label = c("Cal A", "Cal B", "Cal C", "Cal D", "Cal E", "Cal F", "Cal G", "Cal H", "Cal High", "Cal Low", "Cal Mid"), class = "factor"), mean_conc = c(200.619459644855, 158.264703128903, 102.469121407733, 50.3551544728544, 9.88296440865076, 4.41727762501703, 2.53494715706024, 1.00602831741361, 199.065054555735, 2.48063347296935, 50.1499780776199), sd_conc = c(2.3275711264554, NA, NA, NA, NA, NA, NA, 0.101636943231162, 0, 0, 0), nrow = c(3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2)), .Names = c("Identifier of the Run within the Study", "ANALYTEINDEX", "ID", "mean_conc", "sd_conc", "nrow"), row.names = c(NA, -11L ), class = "data.frame") calqc_xtable<-xtable(calqc_table)

He intentado poner una nueva línea en el nombre, pero esto no parece funcionar

names(calqc_table)[1]<-"Identifier of the /nRun within the Study"

Hay alguna forma de hacer esto ? He visto a alguien sugerir usar la función de látex del paquete hmisc para iterar manualmente sobre la tabla y escribirla en látex manualmente, incluida la nueva línea, ¡pero esto parece un poco raro!


La técnica de @Sharpie no me funcionó, ya que pandoc falló con el error 43 en la conversión a pdf. Por lo tanto, aquí está lo que hice:

movió el //centering marcador de //centering :

names(calqc_table)=c(rep("//multicolumn{1}{p{0.75in}}{//centering Identifier of the Run within the Study}", 6))

(aquí aplicado a las 6 columnas de la tabla)

Desinfección e inhabilitación en impresión xtable:

print(calqc_table, sanitize.colnames.function=function(x){x})