繁体   English   中英

使用xtable在latex中输出带子表的表

[英]Output a table with subtables in latex with xtable

我想创建一个包含许多不同子表的乳胶表。 我基本上想要生成一个包含调查答案的表格。

例如,第一个问题的表是:

Q1 <- structure(c(6L, 14L, 20L, 15L, 2L, 3L, 12L, 25L, 7L, 1L, 2L, 
13L, 35L, 10L, 3L), .Dim = c(5L, 3L), .Dimnames = structure(list(
    c("none", "very little", "some", "most", "all"), c("control", 
    "treatment1", "treatment2")), .Names = c("", "")), class = "table")

第二个问题的表是:

Q2 <- structure(c(39L, 12L, 4L, 1L, 1L, 31L, 13L, 4L, 0L, 0L, 39L, 
20L, 4L, 0L, 0L), .Dim = c(5L, 3L), .Dimnames = structure(list(
    c("A", "B+", "B", "B-", "C"), c("control", "treatment1", 
    "treatment2")), .Names = c("", "")), class = "table")

我希望我的LaTeX输出看起来像:

                    Some Title
                    Question 1
             control treatment1 treatment2
  none              6          3          2
  very little      14         12         13
  some             20         25         35
  most             15          7         10
  all               2          1          3
                    Question 2
  A                39         31         39
  B+               12         13         20
  B                 4          4          4
  B-                1          0          0
  C                 1          0          0

我可以用X表创建单独的表,但这需要在latex中进行一些手动工作来合并它们。 现在我做:

print(xtable(Q1), floating = FALSE, only.contents = FALSE, 
      include.rownames = TRUE, include.colnames = TRUE, hline.before = c(1))

虽然这种方法有点变通方法,但它接近您所寻找的方法。 为了得到一个可行的结构,我需要与扩大你的表expand.table从epitools包,并使用tabular功能从表包以获得可用的格式。 这可能不是最好或最有效的方法,但如果你试图避免一些后来的乳胶加工,这可能会有所帮助。 过滤并转换为矩阵后,您可以使用xtable生成下表:

在此输入图像描述

R代码

require(xtable)
require(epitools)
require(tables)

Q1 <- structure(c(6L, 14L, 20L, 15L, 2L, 3L, 12L, 25L, 7L, 1L, 2L, 
                  13L, 35L, 10L, 3L), .Dim = c(5L, 3L), .Dimnames = structure(list(
                    c("none", "very little", "some", "most", "all"), c("control", 
                                                                       "treatment1", "treatment2")), .Names = c("", "")), class = "table")

Q2 <- structure(c(39L, 12L, 4L, 1L, 1L, 31L, 13L, 4L, 0L, 0L, 39L, 
                  20L, 4L, 0L, 0L), .Dim = c(5L, 3L), .Dimnames = structure(list(
                    c("A", "B+", "B", "B-", "C"), c("control", "treatment1", 
                                                    "treatment2")), .Names = c("", "")), class = "table")


names(dimnames(Q1)) <- c("Responses", "Conditions")
names(dimnames(Q2)) <- c("Responses", "Conditions")
q1_df <- expand.table(Q1)
q1_df$Question <- "Question 1"
q2_df <- expand.table(Q2)
q2_df$Question <- "Question 2"
df <- rbind(q1_df, q2_df)


tab <- tabular((Factor(Question)*Factor(Responses)+1) ~ (Conditions), data=df)
tab <- tab[tab[,1] > 0,]
tab <- as.matrix(tab[1:nrow(tab) -1,])

print(xtable(tab, caption="Some Title"), include.rownames=F, include.colnames=F, latex.environments="center", comment=F, caption.placement='top', hline.after=c(0, nrow(tab)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM