Domanda

Ho dei dati (l'uscita di una funzione ddply) che voglio presenti in un XTABLE per l'uso da qualche altra parte.

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")

che mi dà la tabella in formato html. Tuttavia, voglio unire insieme il contenuto delle colonne RunID e ANALYTEINDEX verticale dove i valori sono gli stessi. Qualcuno sa come farlo tramite XTABLE (o qualche altro modo?)

È stato utile?

Soluzione

avrei il frame di dati originale sostituendo i valori che sono uguali al valore precedente NA "ripulire". xtable renderà questi valori mancanti come spazi vuoti. Ciò che starà bene, se non si dispone di linee di confine orizzontali.

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

Ora possiamo applicare questa funzione per le colonne che si desidera ripulito:

clean.cols <- c( "RUNID", "ANALYTEINDEX")
calqc_table[clean.cols] <- lapply(calqc_table[clean.cols], cleanf)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top