MYa*_*208 5 latex r sweave xtable
我正在使用xtable管理R输出Sweave.见下面的代码:
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: L.L 1 184.1 184.1
N:P: Q.L 1 152.1 152.1
N:P: L.Q 1 49.0 49.0
N:P: Q.Q 1 14.1 14.1
Run Code Online (Sandbox Code Playgroud)
我喜欢缩进第一列,如上面的输出所示.但是当我使用xtable(Summary)第一列时左对齐.我知道如何对齐左,右或中心,但无法弄清楚如何在第一个中缩进输出.在这方面的任何帮助将受到高度赞赏.谢谢
aat*_*lob 10
此示例显示如何自定义表,结合使用sanitizextable 中的参数和\hskiplatex中的函数.
代码是:
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})
Run Code Online (Sandbox Code Playgroud)
编辑:遵循Dwin的使用建议
grepl("^ ", rownames(Summary[[1]])
Run Code Online (Sandbox Code Playgroud)
这提供了更通用的解决方案.代码将更改为:
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})
Run Code Online (Sandbox Code Playgroud)
