هل يمكنك دمج الخلايا في Xtable في r
سؤال
لدي بعض البيانات (إخراج وظيفة 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)
لا تنتمي إلى StackOverflow