Właśnie zaczynam się uczyć o KnitR i wykorzystaniu Markdown do generowania dokumentów i raportów R. Wygląda na to, że jest to idealne rozwiązanie dla wielu codziennych raportów, które mam do czynienia z moją pracą. Jednak jedną rzeczą, której nie widzę, jest łatwy sposób drukowania ramek i tabel danych przy użyciu formatowania Markdown (coś w rodzaju xtable
, ale z Markdown zamiast LaTeX lub HTML). Wiem, że mogę po prostu osadzić wynik HTML z xtable, ale zastanawiałem się, czy istnieją rozwiązania oparte na Markdown?
r
markdown
knitr
r-markdown
TARehman
źródło
źródło
print(xtable(data), type = "html")
.knitr
, więc wysłałem prośbę o ściągnięcie,pander
aby dodać styl tabeli. W przyszłych wersjachpander
powinno być to możliwepandoc.table(iris, style="rmarkdown")
pander
powinien być na CRAN. pandoc to program napisany w Haskell, który konwertuje do iz wielu różnych formatów, w żaden sposób nie jest specyficzny dla języka R.pander
, czego ostatnio nie było w CRAN - niepandoc
. Moja wina. :)Odpowiedzi:
Teraz
knitr
(od wersji 1.3) pakiet zawierakable
funkcję tworzenia tabel:AKTUALIZACJA : jeśli otrzymujesz surową przecenę w dokumencie, wypróbuj
results = "asis"
opcję konfiguracji fragmentu.źródło
format
argument, ponieważ knitr zna format wyjściowy i automatycznie go ustawiresults = asis
.results = 'asis'
Dwa pakiety, które to zrobią, to pander
Lub ascii
pander
to nieco inne podejście do tworzenia raportów (ale może być przydatne w przypadku tej funkcji).ascii
pozwoli Ciprint
ztype = 'pandoc
(lub różne inne smaki Przecena)Zauważ, że w obu tych przypadkach jest skierowany do użycia
pandoc
do konwersji z markdown do pożądanego typu dokumentu, jednak użyciestyle='rmarkdown'
spowoduje utworzenie tabel zgodnych z tymmarkdown
pakietem i wbudowaną konwersją wrstudio
.źródło
pander
: może produkowaćrmarkdown
stylizowane stoliki także obok innych np .:pander(head(iris[,1:3]), style = 'rmarkdown')
Chciałem tylko zaktualizować to, co postanowiłem zrobić. Używam
hwriter
teraz pakietu do drukowania tabel i używamrow.*
icol.*
do umieszczania klas CSS w różnych elementach. Następnie napisałem niestandardowy CSS, aby mój wyświetlacz był taki, jak chciałem. Oto przykład na wypadek, gdyby ktoś inny miał do czynienia z czymś podobnym.Najpierw utwórz plik, który wykona
knitting
i zmieni Markdown na HTML:Następnie utwórz rzeczywisty plik Markdown:
Na koniec po prostu utwórz niestandardowy plik CSS.
Uruchomienie
./file_knit.r
daje mi plik.html, który wygląda następująco:Miejmy nadzieję, że może to być pomocne dla innych, którzy chcą nieco więcej formatowania w danych wyjściowych Markdown!
źródło
W
pander
pakiecie znajdują się funkcje :źródło
pander
:) Pamiętaj, że możesz również użyć ogólnej metody S3, aby zapisać kilka znaków dopander(head(iris)[, 1:3])
Stworzenie własnej, dostosowanej funkcji nie jest trudne. Oto bardzo prosty dowód słuszności koncepcji, aby wygenerować tabelę rmarkdown
data.frame
:W dokumencie .Rmd możesz użyć funkcji z
results = 'asis'
:Powyższy kod dałby następujący rysunek (w przykładzie jest to plik wyjściowy w formacie PDF, ale ponieważ tabela jest w markdwon, można ją również połączyć w html lub słowo).
Stąd - i czytając kod innych osób - możesz dowiedzieć się, jak manipulować tekstem, aby wygenerować żądaną tabelę i stworzyć bardziej spersonalizowane funkcje.
źródło
użyj kombinacji knitr :: kable i xtable w swoim dokumencie przeceny.
dla prostej ramki danych -
format="pandoc"
udostępnia więcej opcji, takich jak podpis.Teraz kombinacja do podsumowania modelu .
aby uzyskać jeszcze więcej opcji, spójrz na
stargazer
pakiet zamiastxtable
.przykład do użytku osobistego
źródło
Aby pisać / tworzyć tabele Markdown w R, możesz również użyć funkcji MarkdownReports
MarkDown_Table_writer_DF_RowColNames()
lubMarkDown_Table_writer_NamedVector()
funkcji. Po prostu przekazujesz ramkę / macierz danych z nazwami wymiarów lub wektor z nazwami, a on analizuje i zapisuje tabelę w formacie Markdown.źródło
Moja funkcja dla Gitlab:
źródło