2015-02-13 20 views
18

Bir R işaretleme dosyası ile, çıktı dosyası adının belgede tanımlanması gereken farklı olası çıktı pdf belgeleri oluşturmak istiyorum. Çıkış dosya ismini böyle bir şekilde işlemek için işaretlemeyi ikna etmenin bir yolu var mı? İdeal olarak dosya ismini bir parça ile geçirmek istiyorum.R Markdown - değişken çıktı adı

+0

Komutunuzu gönderebilir misiniz? dosyaları "dinamik olarak" adlandırmak ister misiniz? paste0 ("dosya _", x, ". pdf")? 'x bir tarihin veya bir veri kümesinin adı olabilir – rmuc8

+0

Şimdiye kadar, daha fazla ayrıntıya bakmadan örgü komutunu gerçekleştirerek RStudio kullanıyordum. Ama ilyas cevabına daha yakından bakmalıyım, daha net bir yaklaşım gibi görünüyor. – Sosel

cevap

23

rmarkdown::render olduğunu). Oluşturma işlevinin output_file parametresi, dosya adını belirtir, böylece, ayar dosya adıyla aynı öneki kullanmanın standart davranışını geçersiz kılar.

örn. slidify ile here görüldüğü gibi hep çıkışa bir dosya,

knit: (function(inputFile, encoding) { rmarkdown::render(inputFile, encoding = encoding, output_file = file.path(dirname(inputFile), 'myfile.pdf')) }) 

fonksiyon isimsiz bir liner yanı sıra bir paket ithal olabilir myfile.pdf çağırdı.

Kendi YAML üstbilgilerinizi (bunun genel olarak önerilip belirtilmediğini bilmiyorum), rmarkdown::metadata$newheader numaralı telefondan erişebilirsiniz, ancak görebildiğim kadarıyla bu tür bir işlev içinde görünmezler.

Dosya ismini bir Y ögesinden aktarmaya gelince ... YAML başlığının altındaki kod parçalarına atıfta bulunuyorsanız, bence bu mümkün değil (?). Üstbilgiler, satır içi R komutlarını (r ile başlayan, tek bir backtick-kapalı) içerebilir, ancak görünüşte bu kanca işlevi için değil.

İlgili

:

  • Rmarkdown GitHub repo sorunu
  • +0

    rmarkdown :: metadata $ title <- "Başlığım" hatası: object 'rmarkdown' bulunamadı – jzadra

    +0

    @yihuixie, params geçebilir miyim Çıktı dosyası isimleri ne olursa olsun $? İşaretlemem, ilgili veri dosyasını almak için param $ data kullanıyor, ancak bu sizin tek liner - "params $ data found found" içinde çalışıyor gibi görünmüyor. Ben bir komut dosyasından, rmarkdown :: render (params = liste (data = "Oct2017data"), output_file = "Oct2017_analysis.html") 'dır, ancak açıkçası sadece bir kez yazabilmek istiyorum. – StasK

    14

    Bu hemen hemen benim yaptığım:

    rmarkdown::render('my_markdown_report.Rmd', 
            output_file = paste('report.', Sys.Date(), 
                 '.pdf', sep='')) 
    

    Üç komut dosyaları var - Bir veri ve süreç o rapor için ikinci oluşturulan grafikler & tablolar çeker. Üçüncüsü, markdown dosyasına dayalı rapor oluşturur. Yukarıda gördüğünüz kod üçüncü senaryonun parçasıdır

    Sen düğmenin ne yeniden tanımlamak için denir (varsayılan işlevini belgesiz knit kanca kullanarak bir YAML başlığının RStudio Knit düğmesi ve tekrarlanabilirlik kullanarak basitliğini tutabilir
    +0

    Şimdiye kadar sadece bazı markdown dosyalarını derlemek için RStudios knit komutunu kullanıyordum.Seni doğru anlarsam, R komutlarını kullanarak gerçek markdown dosyasını yaratırsın ve hatta R komutlarını kullanarak işaretlemenin örgüsünü yönlendirir misin? Bu yaklaşımın bugüne kadar farkında değildim, ama daha yakından bakacağım. Şimdiye kadar verileri hazırlıyordum ve bunu ilk senaryoda işlemekteydim, ancak zaten ikinci adımda el ile bir işaretleme dosyası oluşturdum. Bazı raporlara çeşitli veri kaynakları. – Sosel

    +0

    Evet. Markdown dosyası kendi başına ayrı bir betiktir, veri yerlerinin çizelgeleri ve tabloları birlikte okur. Ancak, dış komut dosyasından çağrılır - Rstudio'dan başlatabilir/çalıştırabilir ve aynı ada sahip bir dosya yaratabilirsiniz. Ancak ayrı bir komut dosyası olarak adlandırıyorum ve rmarkdown oluşturduktan sonra pdf oluşturuyor sonuç dosyası – ilya

    2

    gelen bu soruya şu yazdığım output format-specific output_file

  • Blog yayını yazdı bu web sayfası Ne anlattıklarını gösteren harika bir örnektir, bu da aynı .Rmd belgesinden çoklu, tekrarlanabilir raporların nasıl oluşturulacağıdır. :

    http://www.reed.edu/data-at-reed/software/R/markdown_multiple_reports.html

    web sayfası iki komut, bir R senaryo ve çoklu raporlar oluşturmak için bir Rmarkdown komut dosyası kullanır. Kendi çalışmam için bir şablon olarak kullandım ve çok kullanışlı buldum.