Column alignment on xxtable output

I use xtable to control the output of R in Sweave . See the following code:

 CC <- data.frame( y = c(449, 413, 326, 409, 358, 291, 341, 278, 312)/12, P = ordered(gl(3, 3)), N = ordered(gl(3, 1, 9)) ) CC.aov <- aov(y ~ N * P, data = CC , weights = rep(12, 9)) Summary <- summary(CC.aov, split = list(N = list(L = 1, Q = 2), P = list(L = 1, Q = 2))) Summary Df Sum Sq Mean Sq N 2 1016.7 508.3 N: L 1 1012.5 1012.5 N: Q 1 4.2 4.2 P 2 917.4 458.7 P: L 1 917.3 917.3 P: Q 1 0.0 0.0 N:P 4 399.3 99.8 N:P: LL 1 184.1 184.1 N:P: QL 1 152.1 152.1 N:P: LQ 1 49.0 49.0 N:P: QQ 1 14.1 14.1 

I like to backtrack from the first column as shown in the output above. But when I use xtable(Summary) , the first column is left aligned. I know how to align left, right, or center, but I could not figure out how to get the result indented in the first. Any help in this regard would be greatly appreciated. Thanks

+4
source share
2 answers

This example shows how to set up a table combining the use of the sanitize argument in xtable and the \hskip function in latex.

The code:

 named = rownames(Summary[[1]]) tags= gsub(" "," ",named) rownames(Summary[[1]])= c(ifelse(nchar(tags)<8,tags,paste("\\hskip .5cm",tags,sep=' '))) print(xtable(Summary[[1]]), type="latex", sanitize.text.function = function(x){x}) 

EDIT: Following Dwin's suggestion for use

 grepl("^ ", rownames(Summary[[1]]) 

This provides a more general solution. The code will change to:

 named = rownames(Summary[[1]]) tags= grepl("^ ", rownames(Summary[[1]])) rownames(Summary[[1]])= c(ifelse(tags==F,named,paste("\\hskip .5cm",named,sep=' '))) print(xtable(Summary[[1]]), type="latex", sanitize.text.function = function(x){x}) 

enter image description here

+10
source

Edit the xtable output to add another column and place the empty column separators from one of them that you want to indent: (and assuming the appropriate title and footer of the document.)

 \begin{tabular}{llrrr} \hline & fac & Df & Sum Sq & Mean Sq \\ \hline N & & 2 & 1016.67 & 508.33 \\ & N: L & 1 & 1012.50 & 1012.50 \\ & N: Q & 1 & 4.17 & 4.17 \\ P & & 2 & 917.39 & 458.69 \\ & P: L & 1 & 917.35 & 917.35 \\ & P: Q & 1 & 0.04 & 0.04 \\ N:P & & 4 & 399.28 & 99.82 \\ & N:P: LL & 1 & 184.08 & 184.08 \\ &N:P: QL & 1 & 152.11 & 152.11 \\ &N:P: LQ & 1 & 49.00 & 49.00 \\ &N:P: QQ & 1 & 14.08 & 14.08 \\ \hline \end{tabular} 

enter image description here

+2
source

Source: https://habr.com/ru/post/1395362/


All Articles