2014-09-15 5 views
6

Я использую RStudio 0.98.1056 на Windows 7, и какова бы ни была текущая версия pander на CRAN на сегодняшний день (я только что установил пакет).таблицы в pander, style = "multiline"

Я пытаюсь использовать рабочий процесс knitr-> Markdown ->. Docx для создания таблицы в Word. Некоторые из ячеек должны содержать жесткие разрывы строк. Я считаю, что это должно быть возможно на основе информации в следующей ссылке:.

http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html

Он говорит, «Обратный слэш с последующим переводом строки также жесткий разрыв строки Примечание: в многопоточных и таблицы ячеек сетки, это является единственным способом создания жесткого разрыва строки, так как конечные пробелы в ячейках игнорируются ».

Я пытаюсь создать таблицу с ячейками, содержащих разрывы строк следующим образом:

library(pander) 
a <- c(1:10) 
b <- c(11:20) 
ab <- paste(a,b,sep='\n') 
N <- ceiling(rpois(10,9)) 
labels <- paste("Question",c(1:10)) 
mytable <- data.frame(labels,ab,N) 
pandoc.table(mytable, style="multiline") 

Но новая строка просто получает раздела. То же самое, если я использую sep = "< newline>" или sep = "< br>" (без пробелов). Я также попытался добавить дополнительную обратную косую черту, в случае, если R «съел» первую; и включение функции «вставки» для включения каждого из этих возможных разделителей в качестве собственного термина, а не в аргументе sep =. Ни одна из этих вещей не работала.

Я отправился попробовать пример кода в справочной документации по pander, точно так же, как проверка работоспособности, и, похоже, проблема в общем - пример кода, который, как я думал, должен создавать многострочные таблицы, не был на моей машине.

Кто-нибудь еще получил многострочные таблицы в подлодке для работы?

ответ

7

Yup, пожалуйста install the development version от GitHub - этот выпуск был исправлен few months ago. Например:

> panderOptions('keep.line.breaks', TRUE) 
> pander(mytable) 

-------------------- 
labels  ab N 
----------- ---- --- 
Question 1 1 11 
      11  

Question 2 2 6 
      12  

Question 3 3 13 
      13  

Question 4 4 12 
      14  

Question 5 5 6 
      15  

Question 6 6 6 
      16  

Question 7 7 11 
      17  

Question 8 8 19 
      18  

Question 9 9 10 
      19  

Question 10 10 9 
      20  
-------------------- 
+0

Благодарим за это. Я получил установленную версию pander установленную (после решения некоторых проблем с Rtools), и когда я запускаю pander (mytable), я получаю тот же результат, что и в R. С другой стороны, этот вывод не вяжется должным образом либо HTML, либо docx: удаляются строки. Что мне не хватает? Я все еще использую 'pandoc.table (mytable, style =" multiline ")' вместо простого синтаксиса, так что это не проблема. Я также пробовал со стилем = «сетка»: никаких кубиков. – ErinMcJ

+0

@ ErinMcJ это проблема Pandoc. Цитата из его документации: «* Обратная косая черта, сопровождаемая новой строкой, также является жестким разрывом строки. Примечание: в многострочных ячейках сетки и сетке это единственный способ создать жесткий разрыв строки, так как конечные пробелы в ячейках игнорируются. * «Таким образом, вам нужно не только добавить ручные разрывы строк (' \ n'), но и перерыв в строгой строке. См. Демонстрацию, запустив 'pander (descr :: CrossTable (mtcars $ am, mtcars $ gear), split.table = Inf)' – daroczig

+1

Aha! Да! Я был очень смущен тем, что происходит с жесткой линией, если это не последовательность обратного слэша-n. Но оказывается, что для того, чтобы '\\ n' отображаться соответствующим образом, мне нужна дополнительная обратная косая черта в качестве escape-символа: так,' \\\ n.' – ErinMcJ

 Смежные вопросы

  • Нет связанных вопросов^_^