Chciałbym utworzyć jeden z plików wyjściowych w formacie R, w którym nazwa pliku wyjściowego powinna być zdefiniowana w dokumencie. Czy istnieje sposób, aby przekonać markdown do manipulowania wyjściową nazwę pliku w taki sposób? Idealnie chciałbym przekazać nazwę pliku przez r porcję.R Markdown - zmienna nazwa wyjściowa
Odpowiedz
Możesz zachować prostotę korzystania z Knit
przycisk RStudio i powtarzalność nagłówku YAML przy użyciu nieudokumentowane knit
hak przedefiniować co przycisk robi (funkcja domyślnej nazwie jest rmarkdown::render
). Parametr output_file
funkcji renderowania określa nazwę pliku, więc ustawiając go, zastępujesz standardowe zachowanie przy użyciu tego samego prefiksu co nazwa pliku wejściowego.
np. aby zawsze wysyłany plik o nazwie myfile.pdf
knit: (function(inputFile, encoding) { rmarkdown::render(inputFile, encoding = encoding, output_file = file.path(dirname(inputFile), 'myfile.pdf')) })
Funkcja może być anonimowy jedno-liner, jak również importowane z pakietu, jak widać here z slidify.
Możesz ustawić własne nagłówki YAML (nie wiem, czy tak ogólnie się to zaleca), dostępne pod rmarkdown::metadata$newheader
, ale nie wydają się dostępne z tego rodzaju funkcji, o ile widzę.
Jeśli chodzi o przekazywanie nazwy pliku z fragmentu R ... jeśli chodzi o fragmenty kodu poniżej nagłówka YAML, z mojego doświadczenia nie sądzę, że jest to możliwe (?). Nagłówki mogą zawierać wbudowane polecenia R (pojedyncze zamknięcie załączone, zaczynając od r
), ale najwyraźniej nie dla tej funkcji przechwytującej.
Podobne:
- Rmarkdown GitHub repo problem - output format-specific
output_file
- Blog postu napisałem po tym pytaniu on more elaborate uses of the
knit:
hook/odpowiadającej GitHub wiki notes
Błąd w rcmcdown :: metadata $ tytuł <- "Mój tytuł": obiekt "rmarkdown" nie został znaleziony – jzadra
@ yihuixie, czy mogę przekazać parametry Cokolwiek na nazwy plików wyjściowych w ten sposób? Mój przecinek wykorzystuje params $ dane do pobrania odpowiedniego pliku danych, ale nie wygląda na to, że działa on w twoim jednolinijkowym - 'params $ dane nie znalezione'. Mogę przekazać wszystko, co chcę, ze skryptu z 'rmarkdown :: render (params = list (data =" Oct2017data "), output_file =" Oct2017_analysis.html ")', ale oczywiście chcę móc go wpisać tylko raz. – StasK
To jest dość dużo, co mam zrobić:
rmarkdown::render('my_markdown_report.Rmd',
output_file = paste('report.', Sys.Date(),
'.pdf', sep=''))
Mam trzy scenariusze - jeden ciągnie dane i przetwarza je, drugi utworzone wykresy & tabele dla raportu. Trzeci tworzy raport oparty na pliku przeceny. Kod widać powyżej jest częścią trzeciego scenariusza
Do tej pory używałam tylko polecenia KnStudios knit, aby skompilować jakiś plik.Jeśli rozumiem cię poprawnie, tworzysz rzeczywisty plik przeceny za pomocą poleceń R, a nawet sterujesz knowaniem przecinków za pomocą poleceń R? Dotychczas nie znałem tego podejścia, ale przyjrzę mu się bliżej. Do tej pory przygotowywałam dane i przetwarzałam je w pierwszym skrypcie, ale już w drugim kroku ręcznie utworzyłem plik oceny, umieszczając np. różne źródła danych w niektórych raportach. – Sosel
Tak. plik markdown jest osobnym skryptem, odczytuje dane, umieszcza wykresy i tabele razem. Nazywa się to jednak z zewnętrznego skryptu - możesz także uruchomić/uruchomić go z Rstudio i utworzy plik o tej samej nazwie. Ja jednak nazywam to oddzielnym skryptem, a po rmarkdown tworzy plik wynikowy pdf jest kopiowany do różnych miejsc. – ilya
ślad za co @ilya napisał, ta strona ma świetny przykład demonstrujący to, co opisują, czyli jak tworzyć wiele powtarzalnych raportów z tego samego dokumentu .Rmd :
http://www.reed.edu/data-at-reed/software/R/markdown_multiple_reports.html
Strona internetowa wykorzystuje dwa skrypty, jeden skrypt R i jeden skrypt Rmarkdown tworzenia wielu raportów. Użyłem go jako szablonu do mojej własnej pracy i uznałem to za bardzo użyteczne.
- 1. Zmienna dynamiczna nazwa Ruby
- 2. Nazwa wyjściowa CMake dla biblioteki ładowanej dynamicznie?
- 3. R inline markdown
- 4. R Markdown wyświetlający tylko wynik
- 5. Konwerter Jekyll dla R Markdown
- 6. 2 kolumny Przekrój R Markdown
- 7. YouTube Video in R markdown
- 8. Zmienna nazwa zmiennej w gałązka
- 9. Wyjściowa nazwa pliku wyjściowego i dołączenie do zapisu
- 10. zmienna globalna funkcja R
- 11. Alternatywa w Pythonie do R Markdown
- 12. Zachowywanie podświetlania składni R Markdown podczas drukowania
- 13. Wysyłanie kodu HTML z wewnątrz R markdown
- 14. Łączenie skryptów MATLAB w dokument R Markdown
- 15. R - Markdown unikający wiadomości o ładowaniu pakietów
- 16. Dołącz błędy w winietę pakietu R markdown
- 17. Jak dodać interaktywną wizualizację do R markdown
- 18. Jak utworzyć podsekcję w R markdown
- 19. jak skomentować bloki kodów R w R markdown?
- 20. Zmienna jako nazwa kolumny w ramce danych
- 21. Zastosowanie Zmienna jako nazwa funkcji w PHP
- 22. Wymagaj w browserify nie działa zmienna nazwa
- 23. ustalania nazwa obiektu załadowany R
- 24. Podwójna moc wyjściowa konsoli?
- 25. Interpretacja wyjściowa profilowania MediaWiki
- 26. Niestandardowe CSS z knitr i markdown w R
- 27. W jaki sposób przekazać zmienne do pliku .Rmd R Markdown?
- 28. Jak utworzyć winietę R Markdown zawierającą spiskowaną grafikę
- 29. Wyśrodkowywanie obrazu i tekstu w R Markdown dla raportu PDF
- 30. Jak mogę pozostawić wyrównanie równań lateksu w R Markdown?
Czy mógłbyś opublikować swoje polecenie? czy chcesz nazywać pliki "dynamicznie"? 'wklej0 (" plik _ ", x,". pdf ")?' x może być datą lub nazwą zestawu danych – rmuc8
Do tej pory używałem RStudio, wykonując polecenie dzianiny, bez szukania więcej szczegółów. Ale powinienem przyjrzeć się odpowiedzi na ilyas, brzmi jak zdecydowanie jaśniejsze podejście. – Sosel