2014-09-15 42 views
6

Windows 7'de RStudio 0.98.1056 kullanıyorum ve şu anki pander sürümü bugün itibariyle CRAN'da (paketini yeni yükledim).pander tabloları, style = "çok satırlı"

Word'de bir tablo oluşturmak için knitr-> Markdown ->. Docx okuryazarlık programlama iş akışını kullanmaya çalışıyorum. Bazı hücrelerin sert satır sonları içermesi gerekir. Bunu aşağıdaki bağlantıda bilgi dayalı mümkün olması gerektiğine inanıyoruz.

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

, "sonrasında bir yeni satır bir ters eğik çizgi de sert bir satır sonu Not: satırlı ve ızgara tablo hücrelerindeki bu Hücrelerdeki boşluklar göz ardı edildiğinden, sert bir satır sonu oluşturmanın tek yolu. "

aşağıdaki şekilde satır sonları içeren hücreler ile bir tablo oluşturmak çalışıyorum:

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") 

Ama yeni satır sadece elimden alır. Eğer sep = "< newline>" veya sep = "< br>" (öncü boşluklar olmadan) kullanırsam aynı olur. R'nin ilkini "yemesi" durumunda ekstra bir ters eğik çizgi eklemeyi de denedim; ve "yapıştır" fonksiyonunu, bu olası ayırıcıların her birini, sep = argümanı yerine, kendi başına bir terim olarak içerecek şekilde açmak. Bu şeylerin hiçbiri işe yaramadı.

Örnekleme kodunu pander yardım belgelerinde denedim, tıpkı bir akıl sağlığı kontrolü gibi, ve sorunun genel olduğunu düşünüyorum - çok satırlı tablolar üretmem gerektiğini düşündüğüm örnek kod, makinemde yoktu.

Başkalarının işe yarayacak şekilde çok satırlı tablolara sahip oldu mu?

cevap

7

Yup, lütfen GitHub numaralı telefondan install the development version - bu sorun bir few months ago düzeltildi. E.g .:

> 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

Bunun için teşekkürler. Pander yüklü versiyonu (Rtools ile bazı problemleri çözdükten sonra) aldım ve “pander (mytable)” ı çalıştırdığımda R'de gördüğünüz çıktıyı elde ediyorum. Diğer taraftan, bu çıktı düzgün bir şekilde örgülenmiyor. HTML veya docx: linebreaks kaldırılır. Neyi kaçırıyorum? Daha basit sözdizimi yerine pandoc.table (mytable, style = "multiline") 'ı kullanıyorum, bu yüzden sorun değil. Ben de style = "grid" ile çalıştım: zar yok. – ErinMcJ

+0

@ErinMcJ bu bir Pandoc sorunudur. Belgelerinden alıntı: "* Bir satırsonu tarafından izlenen bir ters eğik çizgi aynı zamanda sert bir çizgi kırılmadır. Not: çok satırlı ve ızgara tablo hücrelerinde, bu hücrelerdeki boşlukları göz ardı edilir, çünkü sert bir satır sonu oluşturmak için tek yoldur. * "Yani, yalnızca manuel satır sonlarını (\ n") eklemenize değil, aynı zamanda zor bir satır kopmasına da gerek yoktur. 'Pander (descr :: CrossTable (mtcars $ am, mtcars $ dişli), split.table = Inf) 'ı çalıştırarak bir demoya bakın' – daroczig

+1

Aha! Evet! Ters eğik çizgi-n dizisi değilse, ne kadar sert bir çizgi kopması olduğu konusunda kafam karışmıştı. Ancak, '\\ n' nin uygun bir şekilde işlenebilmesi için, bir çıkış karakteri olarak fazladan bir ters eğik çizgi gerekiyordu: yani, \\\ n.' – ErinMcJ