Frage

Ich habe einige Daten bekommt (die Ausgabe einer ddply-Funktion), dass ich irgendwo anders in einem XTABLE zur Verwendung präsentieren will.

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

, die mir die Tabelle im HTML-Format gibt. Ich möchte jedoch vertikal zusammen, um den Inhalt der RunID und ANALYTEINDEX Spalten zusammenführen, wo die Werte gleich sind. Wer weiß, wie das über XTABLE zu tun (oder eine andere Art und Weise?)

War es hilfreich?

Lösung

Ich würde „säubern“ der ursprüngliche Datenrahmen, um die Werte zu ersetzen, die von NA auf den vorherigen Wert gleich sind. xtable werden diese fehlenden Werte als leere Räume machen. Dies wird gut aussehen, wenn Sie nicht horizontale Grenzlinien haben.

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

Jetzt können wir diese Funktion auf die Spalten anwenden, dass Sie gereinigt werden sollen:

clean.cols <- c( "RUNID", "ANALYTEINDEX")
calqc_table[clean.cols] <- lapply(calqc_table[clean.cols], cleanf)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top