Вывод таблицы с субделяйми в латекс с помощью ZTABLE
Вопрос
Я хочу создать латексную таблицу со многими различными субфетами.Я в основном хочу создать таблицу с ответами из опроса.
Например, таблица для первого вопроса:
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")
.
Я хочу, чтобы мой латексный вывод посмотреть что-то вроде:
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, но это требует некоторой ручной работы в латессе, чтобы объединить их.Прямо сейчас я делаю:
print(xtable(Q1), floating = FALSE, only.contents = FALSE,
include.rownames = TRUE, include.colnames = TRUE, hline.before = c(1))
. Решение
Хотя этот метод немного обходной путь, он приближается к тому, что вы ищете.Чтобы получить работоспособную структуру, мне нужно было расширить свои таблицы expand.table
из пакета EPITOLS и используйте функцию 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)))
.