Pregunta

Tengo algunos datos (la salida de una función ddply) que quiero presente en una xtable para su uso en otro lugar.

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("RUNID", "ANALYTEINDEX", 
"ID", "mean_conc", "sd_conc", "nrow"), row.names = c(NA, -11L
), class = "data.frame")
calqc_xtable<-xtable(calqc_table)
print(calqc_xtable,type="html")

que me da la tabla en formato html. Sin embargo, quiero fusionar el contenido de las columnas y RunID ANALYTEINDEX verticalmente, donde los valores son los mismos. Alguien sabe cómo hacerlo a través de xtable (o de alguna otra manera?)

¿Fue útil?

Solución

Me "limpiar" la trama de datos original de la sustitución de los valores que son iguales al valor anterior por NA. xtable hará que estos valores perdidos como espacios vacíos. Esto se verá bien si usted no tiene líneas de los bordes horizontales.

cleanf <- function(x){ 
   oldx <- c(FALSE, x[-1]==x[-length(x)])  # is the value equal to the previous?
   res <- x
   res[oldx] <- NA        
   res}

Ahora podemos aplicar esta función a las columnas que desea limpiado:

clean.cols <- c( "RUNID", "ANALYTEINDEX")
calqc_table[clean.cols] <- lapply(calqc_table[clean.cols], cleanf)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top