Estou começando a aprender sobre o KnitR e o uso do Markdown na geração de documentos e relatórios R. Isso parece ser perfeito para muitas das reportagens do dia a dia que tenho a ver com meu trabalho. No entanto, uma coisa que não estou vendo é uma maneira fácil de imprimir quadros de dados e tabelas usando a formatação Markdown (mais ou menos como xtable
, mas com Markdown em vez de LaTeX ou HTML). Eu sei que posso simplesmente incorporar a saída HTML de xtable, mas gostaria de saber se há alguma solução baseada em Markdown?
r
markdown
knitr
r-markdown
TARehman
fonte
fonte
print(xtable(data), type = "html")
.knitr
, então enviei uma solicitação de pullpander
para adicionar o estilo de tabela. Em versões futuras depander
, você deve ser capaz de fazerpandoc.table(iris, style="rmarkdown")
pander
deve estar no CRAN. pandoc é um programa escrito em Haskell que converte de e para uma ampla variedade de formatos diferentes, não é específico do R de forma alguma.pander
, que não estava no CRAN da última vez que ouvi - nãopandoc
. Minha culpa. :)Respostas:
Agora
knitr
(desde a versão 1.3) o pacote inclui akable
função para tabelas de criação:ATUALIZADO : se você obtiver marcação bruta em um documento, tente a
results = "asis"
opção de configuração do bloco.fonte
format
argumento de fora , já que o knitr está ciente do formato de saída e irá configurá-lo automaticamenteresults = asis
.results = 'asis'
Dois pacotes que farão isso são pander
Ou ascii
pander
é uma abordagem ligeiramente diferente para a construção de relatórios (mas pode ser útil para esse recurso).ascii
permitirá que vocêprint
comtype = 'pandoc
(ou vários outros sabores de marcação)Observe que, em ambos os casos, ele é direcionado ao uso
pandoc
para converter do markdown para o tipo de documento desejado; no entanto, o usostyle='rmarkdown'
criará tabelas que são compatíveis com estemarkdown
pacote e a conversão embutida emrstudio
.fonte
pander
: pode produzir asrmarkdown
mesas estilizadas também ao lado de outras, por exemplo:pander(head(iris[,1:3]), style = 'rmarkdown')
Só queria atualizar isso com o que decidi fazer. Estou usando o
hwriter
pacote agora para imprimir tabelas e usando os recursosrow.*
ecol.*
para colocar classes CSS em diferentes elementos. Então, escrevi CSS customizado para fazer minha exibição como eu queria. Então, aqui está um exemplo caso alguém esteja lidando com algo semelhante.Primeiro, crie um arquivo que fará
knitting
e transformará o Markdown em HTML:Em seguida, crie o arquivo Markdown real:
Finalmente, basta criar um arquivo CSS personalizado.
Executando
./file_knit.r
me dá file.html, que se parece com isto:Portanto, espero que isso possa ser útil para outras pessoas que desejam um pouco mais de formatação na saída do Markdown!
fonte
Existem funções no
pander
pacote:fonte
pander
:) Observe que você também pode usar o método S3 genérico para salvar alguns caracteres para digitar, como:pander(head(iris)[, 1:3])
Não é muito difícil fazer sua própria função personalizada. Aqui está uma prova de conceito muito simples para gerar uma tabela rmarkdown de
data.frame
:No documento .Rmd, você usaria a função com
results = 'asis'
:O código acima forneceria a seguinte figura (no exemplo, esta é a saída em pdf, mas como a tabela está em markdwon, você também poderia tricotar em html ou word).
A partir daqui - e lendo o código de outras pessoas - você pode descobrir como manipular o texto para gerar a tabela desejada e criar funções mais personalizadas.
fonte
use uma combinação de knitr :: kable e xtable em seu documento markdown.
para um data.frame simples -
format="pandoc"
permite mais opções como legenda.Agora, a combinação para o resumo do modelo .
para ainda mais opções, olhe para
stargazer
pacote em vez dextable
.exemplo para uso pessoal
fonte
Para escrever / criar tabelas Markdown em R, você também pode usar MarkdownReports
MarkDown_Table_writer_DF_RowColNames()
ouMarkDown_Table_writer_NamedVector()
funções. Você simplesmente passa um quadro / matriz de dados com nomes de dimensão, ou um vetor com nomes, e ele analisa e escreve a tabela no formato Markdown.fonte
Minha função para Gitlab:
fonte