Можете ли вы объединить ячейки в Xtable в R

StackOverflow https://stackoverflow.com/questions/2379701

  •  24-09-2019
  •  | 
  •  

Вопрос

У меня есть некоторые данные (выходная функция 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