Повторите заголовки при использовании xtable с параметром longtable - PullRequest
9 голосов
/ 17 сентября 2011

Есть ли способ повторить верхние строки / установить заголовки при генерации xtable с параметром longtable?

Например, если у меня есть

tableSb <- xtable(df, caption="A Very Long Table", label="ALongTable")
print(tableSb, include.rownames=TRUE, tabular.environment="longtable", floating=FALSE)

Это прекрасно работает,но когда таблицы переходят на новую страницу, заголовки не повторяются.Есть предложения?

Ответы [ 2 ]

22 голосов
/ 19 февраля 2012

Для этого вам необходимо использовать опцию add.to.row функции print (запустите ?print.xtable для получения дополнительной информации).

Попробуйте это (адаптировано из https://r -forge.r-project.org / tracker /? Func = detail & atid = 4864 & aid = 1627 & group_id = 1228 )

addtorow          <- list()
addtorow$pos      <- list()
addtorow$pos[[1]] <- c(0)
addtorow$command  <- c(paste("\\hline \n",
                             "\\endhead \n",
                             "\\hline \n",
                             "{\\footnotesize Continued on next page} \n",
                             "\\endfoot \n",
                             "\\endlastfoot \n",sep=""))
x.big <- xtable(x, label = "tabbig", caption = "Example of longtable spanning several pages")
print(x.big, tabular.environment = "longtable", floating = FALSE,
      include.rownames = FALSE,  # because addtorow will substitute the default row names 
      add.to.row = addtorow,     # this is where you actually make the substitution
      hline.after=c(-1))         # because addtorow will substitute the default hline for the first row

Это немного неуклюжее решение, но, по крайней мере, оно предоставит вам множество настроек.

2 голосов
/ 17 сентября 2011

Глядя на код для print.xtable, единственные соображения, которые он учитывает, когда tabular.environment="longtable" -

  • Вывод предупреждения, если вы также установили floating=TRUE
  • Размещение заголовка в нужном месте для длинной таблицы (сверху или снизу)

Он не генерирует код, специфичный для повторения заголовков на последующих страницах. Проверьте latex в пакете Hmisc. Я знаю, что он также поддерживает longtables, но я не помню, правильно ли он повторяет заголовки.

...