Настроить xtables, добавив горизонтальные линии и объединив ячейки?

Я видел подобные вопросы на SO - на большинство из них не было ответа. Те, на кого был дан ответ, обычно предлагают не использовать xtable, поскольку он не гибок в настройке. Я прикрепил две картинки: 1) моя сгенерированная таблица из xtable 2) моя идеальная таблица. Я хотел бы добавить горизонтальную линию к моему 1.png, разделив его на 3 секции и назвав секции «Школы», «Оценки», «Студенты».

1) Кто-нибудь видит какое-либо возможное решение с помощью xtable?

2) Есть ли способ прочитать вывод xtable в виде списка строк, а затем изменить его, добавив некоторый латексный код, чтобы получить желаемую таблицу? Ты пробовал это?

3) Есть ли другой пакет, который можно использовать вместо xtable? введите здесь описание изображениявведите здесь описание изображения

Вот несколько смоделированных чисел для работы (предположим, это код для 1.png):

library(xtable)

desc.matrix <- matrix(rep(NA,60),ncol = 4)
colnames(desc.matrix) <- c("Grade 3","Grade 4","Grade 5","Total")
rownames(desc.matrix) <- c("TRT-#Schools","TRT(Enroll>=85%)-#Schools", 
"TRT(Prog>=50%)- #Schools", "TRT(Prog >= 50% & Enroll>=85%)-#Schools",
"Control-#Schools","TRT-#Grades","TRT(Enroll>=85%)-#Grades", 
"TRT(Prog>=50%)-#Grades", "TRT(Prog >= 50% & Enroll>=85%)-#Grades",
"CTRL-#Grades","TRT-#Students","TRT(Enroll>=85%)-#Students", 
"TRT(Prog>=50%)-#Students", "TRT(Prog >= 50% & Enroll>=85%)-#Students",
"CTRL-#Students")

for (i in 1:ncol(desc.matrix)){
   desc.matrix[,i] <- c(1:(nrow(desc.matrix)))
}

xtable(desc.matrix)

Я ценю вашу помощь.


person Sam    schedule 09.08.2012    source источник
comment
Это, конечно, было бы возможно, но вы не предоставили данные для работы. Интересно, сколько других вопросов без ответа, на которые вы не ответили, также не прошли тест на наличие воспроизводимого примера?   -  person IRTFM    schedule 09.08.2012
comment
Привет, DWin, я думал о том, чтобы получить некоторые подсказки и написать свой код самостоятельно. Кроме того, для генерации этих чисел мы должны использовать соответствующий набор данных. Я собираюсь смоделировать некоторые числа и добавить их к вопросу.   -  person Sam    schedule 09.08.2012


Ответы (1)


Найдите файл xtableGallery.pdf и найдите в нем hline.after, чтобы найти пример того, как разместить линии-разделители в любом месте. Если вы сделаете ?xtable, перейдите по указателю внизу, а затем перейдите по ссылке вверху о виньетках, вы также можете найти это там.

person Bryan Hanson    schedule 09.08.2012
comment
Я ценю Брайана. Как насчет слияния части. Я бы хотел написать слово «Школы» перед первыми 5 строками. Затем Оценки для следующих 5 строк и, наконец, Студенты для последних 5 строк. - person Sam; 10.08.2012
comment
Повернулся на 90 градусов? Это будет сложно/невозможно. Вы можете добавить эти категории в виде новых строк над соответствующим им разделом, а затем выделить их дополнительными строками (что означает добавление строк к уже имеющемуся примеру). Предполагая, что вы хотите, чтобы это было полностью автоматизировано с помощью вашей системы Sweave или Knitr, я не думаю, что вы могли бы сделать что-то большее. Трудно автоматически комбинировать данные R с более причудливыми материалами LaTeX. Черт, с таблицами в LaTeX вообще может быть сложно. В LaTeX есть SO по адресу tex.stackexchange.com, который может оказаться полезным. - person Bryan Hanson; 10.08.2012
comment
@Sepehr Если это окажется вашим лучшим ответом, пожалуйста, примите его (зеленая галочка), чтобы я мог захватить мир с моей огромной репутацией! - person Bryan Hanson; 10.08.2012
comment
Привет @Bryan, на самом деле это не так. Так как основной вопрос заключается в слиянии ярлыков школ,... . Если вы не возражаете, я подожду пару дней, а затем отмечу его как принятое, так как я думаю, что как только оно будет помечено как принятое, люди думают, что на вопрос дан ответ. Я дал вам +1, хотя. - person Sam; 10.08.2012
comment
Вот ссылка на несколько способов сделать это, но вам придется вручную вставить несколько строк в свой вывод, чтобы он не работал без вмешательства. Вы также окрашиваете ячейки таким образом, довольно приятно: rows" title="как повернуть текст в таблице по столбцу, охватывающему много строк">tex.stackexchange.com/questions/9893/ - person Bryan Hanson; 11.08.2012
comment
Я ценю это, Брайан. Но пост выше в LaTex. Знаете ли вы, как можно манипулировать кодом, сгенерированным из xtable? Приведенная выше xtable является частью фрагмента кода в большом проекте анализа данных R. Я не хочу вручную печатать xtable и изменять его вручную. Что я хотел бы сделать, так это каким-то образом найти способ изменить xtable в коде без ручного изменения кода латекса. Спасибо за привет, Брайан. - person Sam; 12.08.2012
comment
Я думаю, вы всегда можете получить исходный код из xtable и изменить его в соответствии с вашими потребностями. Кадры данных обрабатываются определенным образом. Вы можете скопировать этот код в фрагмент R и изменить его в своем документе, чтобы он номинально применялся только к документу, который вы плетете/вяжете. Это будет работать только в том случае, если нужная вам модификация непротиворечива от чанка к чанку. - person Bryan Hanson; 11.09.2012