Sweave中的xtable:指定表格中的toprule或midrule + alignement

时间:2017-03-18 09:04:47

标签: r latex sweave xtable

我在R中使用Sweave生成一个自动报告。我想:

  1. 在位置(nrow -1)我希望有一个toprule而不是midrule
  2. 将第一行对齐为居中,然后我想将数字对齐,以便对齐数字。
  3. 这是我的代码:

    \documentclass[a4paper,18pt]{article}
    \usepackage[top=2.5cm, left=2.5cm, right=2.5cm,bottom=2.5cm]{geometry}
    \usepackage{Sweave} 
    \usepackage{booktabs}
    \makeatletter
      \def\hrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@}
    \makeatother
    \begin{document}
    \SweaveOpts{concordance=TRUE}
    
    <<xtable1, results=tex,echo=FALSE>>=
    library(xtable)
    
    > data
              l w  a m
    x     NA  515.0 0.22 127.83
    y     NA   75.0 0.45  33.75
    z     NA   85.0 0.45  38.25
    
    
    xtab <- xtable(data)
    hline <- c(-1,0,nrow(xtab)-1,nrow(xtab))
    align(xtab) <- "lcccc"
    print(xtab,booktabs=T,hline.after=hline)
    @
    
    
    \end{document} 
    

1 个答案:

答案 0 :(得分:3)

documentation开始,使用add.to.rowhline.after=NULL一起控制您从hline向量添加到行的内容。

library(xtable)
xtab <- xtable(data)

hline <- c(-1,0,nrow(xtab)-1,nrow(xtab))
htype <- c("\\toprule ", "\\midrule ", "\\toprule ","\\bottomrule ")

print(xtab,add.to.row = list(pos = as.list(hline),
                             command = htype),
      hline.after = NULL)

<强> 数据

data <- structure(list(l = c(NA, NA, NA), w = c(515, 75, 85), a = c(0.22, 
0.45, 0.45), m = c(127.83, 33.75, 38.25)), class = "data.frame", row.names = c("x", "y", "z"))