سؤال

لدي بعض البيانات (إخراج وظيفة ddply) التي أريد تقديمها في Xtable للاستخدام في مكان آخر.

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

مما يعطيني الجدول بتنسيق HTML. ومع ذلك ، أريد دمج محتوى أعمدة RunId و AnalyteIndex رأسياً حيث تكون القيم هي نفسها. أي شخص يعرف كيفية القيام بذلك عبر Xtable (أو بطريقة أخرى؟)

هل كانت مفيدة؟

المحلول

أود "تنظيف" إطار البيانات الأصلي الذي يحل محل القيم التي تساوي القيمة السابقة بواسطة NA. xtable سيجعل هذه القيم المفقودة كمساحات فارغة. سيبدو هذا جيدًا إذا لم يكن لديك خطوط حدودية أفقية.

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

الآن يمكننا تطبيق هذه الوظيفة على الأعمدة التي تريد تنظيفها:

clean.cols <- c( "RUNID", "ANALYTEINDEX")
calqc_table[clean.cols] <- lapply(calqc_table[clean.cols], cleanf)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top