Diferença entre o R MarkDown e o R NoteBook

136

Estou tentando entender em alto nível quais são as diferenças entre R Markdowne R NoteBook. Eu sei que eles estão inter-relacionados, mas eu gostaria de descobrir como eles estão relacionados. Meu entendimento é este:

Sei que os R Notebooks são realmente documentos R Markdown, mas estou confuso sobre as terminologias.

Rstudio opção novo arquivo tem tanto R Markdowne R NoteBooke selecionar qualquer um deles abre um R Markdownarquivo, mas com pequenas diferenças. Então, apenas tentando descobrir por que existem duas opções e qual a diferença entre as duas?

insira a descrição da imagem aqui

Entendo que os R Notebooks foram introduzidos recentemente e o R Markdown já existe há algum tempo. Parte da confusão pode ser porque eu nunca usei R Markdownantes da introdução do R Notebook, então minha pergunta relacionada ou mais específica é

O que o R NoteBook está fazendo de maneira diferente do que usar o R ​​MarkDown ou quais novos recursos o R NoteBook está trazendo?

Todos os meus hits na pesquisa na web indicam que o R Notebook usa o R Markdown, mas não encontrei nenhuma ajuda sobre o que é especificamente diferente entre os dois.

PagMax
fonte
1
Eu uso o knitr e o LaTeX, então escolho a opção R Sweave. Não tendo usado o RMarkdown, tudo o que posso dizer é que o LaTex pode fazer qualquer coisa, mas esse poder traz consigo complexidade e uma curva de aprendizado. Além disso, há uma enorme comunidade de apoiadores e amplos livros e recursos.
Advogado
1
obrigado @lawyeR. Não estou preocupado com recursos e posso encontrar o caminho do R e do LaTeX razoavelmente bem. Eu me perguntei o que era Sweave, mas pensei em me preocupar com isso mais tarde. Obrigado por suas idéias sobre isso. por agora eu estou apenas olhando para as diferenças de alto nível entre estes vários sabores de R.
PagMax
5
E enquanto você é um grande fã de ler o manual, que tal ler a pergunta real que você votou abaixo e responder especificamente ao que é solicitado na pergunta, em vez de despejar material da documentação?
PagMax

Respostas:

55

Tanto quanto eu entendo e da minha configuração, não há diferença de codificação. A diferença está na renderização. A extensão do arquivo é a mesma.

Quando você cria um novo R Notebook, ele adiciona html_notebooka opção de saída no cabeçalho. Essa é a diferença. Você pode visualizar a renderização rapidamente sem precisar tricotar. Ele também atualiza a visualização sempre que você salva. No entanto, nessa visualização, você não tem o código de saída (sem figuras, sem tabelas ...) (pelo menos na minha configuração). Sem html_notebookna saída, não há visualização do botão

insira a descrição da imagem aqui

como você pode ver, as opções de visualização são exibidas, mas você também pode tricotar em qualquer formato que desejar. Ele será adicionado ao código do cabeçalho quando você fizer isso.

insira a descrição da imagem aqui

No entanto, se você não o tiver html_notebookno cabeçalho, poderá tricotar seu código apenas para ver como ele é (o livro inteiro) (ignore a opção padrão adicional que eu incluí na foto)

insira a descrição da imagem aqui

e a opção de visualizar não aparece no menu suspenso

insira a descrição da imagem aqui

Caso contrário, funciona da mesma maneira. Para algumas configurações padrão, a saída também é oculta por padrão na seção de código.

Observe que você pode misturar várias opções de saída em seu cabeçalho para manter a visualização e as opções de malha para exportação.

R. Prost
fonte
2
como complemento, há um erro no UTC (levando em conta acentos e caracteres não em inglês) no notebook. Ele vai estragar a sua saída e seu arquivo ... então é melhor ficar a remarcação ... Este ponto ainda está sendo dirigida (tanto quanto eu sei)
R. Prost
4
Sua resposta é absolutamente a que acho que a diferença é depois de usá-la por alguns meses. O que me impressiona é o R Notebook é tudo e acima do que o R MarkDown é. Por que continuar com o R Markdown então? Você pode usar o notebook R e "tricotar" diretamente em vez de "visualizar" e você tem a funcionalidade R Markdown !!
PagMax
2
Acho que é mais um problema de legado, para não confundir as pessoas que já usam o Rmarkdown. Além disso, a versão atual do notebook (ou R) tem o bug mencionado acima, o que me impede de usá-lo basicamente. Meu texto também é substituído por sem sentido no arquivo de origem, dependendo da maneira como uso (de rmardown para notebook ou notebook para rmarkdown). Então, eu vou continuar com a remarcação até que eu possa consertar isso. Especialmente que a pré-visualização do notebook não é tão útil para mim, apenas visualizando o texto sem os gráficos etc., mas tem muito potencial.
R. Prost
41

Recentemente eu encontrei este post que me deixou claro sobre a edição R Markdown vs. R Notebook. http://uc-r.github.io/r_notebook

Aqui estão algumas linhas relevantes:

Escrever um documento R Notebook não é diferente de escrever um documento R Markdown. A sintaxe do pedaço de texto e código não difere do que você aprendeu no tutorial do R Markdown. A principal diferença está na interatividade de um notebook R. Principalmente, ao executar pedaços em um documento R Markdown, todo o código é enviado para o console de uma só vez , mas em um R Notebook, apenas uma linha de cada vez é enviada . Isso permite que a execução pare se uma linha gerar um erro.

Também existe isso na malha vs. visualização quando você cria um R Notebook no RStudio:

A visualização mostra uma cópia HTML renderizada do conteúdo do editor. Consequentemente, ao contrário do Knit , o Preview não executa nenhum pedaço de código R. Em vez disso, a saída do pedaço quando foi executada pela última vez no editor é exibida.

Espero que você ache útil.

Mani Tajaddini
fonte
Essa segunda parte é especialmente útil para entender a diferença!
precisa saber é o seguinte
15

Uma das diferenças mais importantes não está completamente clara nas respostas acima.

Da Seção 3.2.1.3 do livro de Bookdown :

Há também um Restart R and Run All Chunksitem no Runmenu na barra de ferramentas do editor, que fornece uma nova sessão R antes de executar todos os pedaços. É semelhante ao Knitbotão, que inicia uma sessão R separada para compilar o documento.

Em outras palavras, o tricô cria um novo ambiente e executa todo o código lá. Por outro lado, o Notebook R usa o ambiente global para renderizar o arquivo HTML. De fato, para um Notebook R, as alterações no arquivo HTML acontecem toda vez que o .Rmddocumento é salvo. O Previewbotão simplesmente abre o arquivo HTML em seu estado atual. Nenhum código é executado. Previewliteralmente significa o que diz: apenas mostra o que já foi feito.

Por que isso importa? Por exemplo, se um .Rmdarquivo R Notebook for aberto, mas nenhum pedaço de código for executado, o arquivo HTML renderizará toda a redução e o código de entrada, mas nenhuma saída será exibida. Ou, suponha que você defina alguma variável xno console, mas não em um pedaço de código. Se você tentar usar xem algum lugar do Notebook R, ele funcionará perfeitamente. A visualização do documento HTML também funcionará bem. Por outro lado, tricotar o documento gerará um erro de "variável desconhecida" porque o tricô executa todo o código em um novo ambiente, e a variável xnunca foi definida no arquivo de remarcação em nenhum lugar.

Sean Raleigh
fonte
7

A diferença é que no R Notebok você pode escrever Markdown e Chunks de código R e executá-los diretamente e ver os resultados imediatamente. É uma espécie de caderno para você.

R Markdown está lá para criar resultados interessantes em html, pdf ou um documento do Word. Combinando Markdown e R-Code-Chunks. Uma breve introdução e motivação pode ser encontrada aqui .

Se você quiser obter mais informações sobre o pacote knitr, clique aqui.

Swolf
fonte
2
Bem, isso ainda não explica como o Markdown é diferente do Notebook. (Eu entendo que o notebook usa remarcação), mas a remarcação R existia antes dos cadernos R, introduzidos no ano passado. Então, quais são os novos recursos do notebook R que antes não eram possíveis usando apenas a marcação R?
PagMax
3
@ PagMax Acho que a diferença está na velocidade de renderização da saída html do seu arquivo Rmarkdown. Quando você deseja usar o knitr para produzir uma saída html da sua marcação R, leva um tempo para "tricotar" todo o seu código e gerar a saída. Para acelerar, é possível visualizar seu Rmarkdown em html usando o "modo" do Rnotebook no Rstudio, alterando sua saída para "html_notebook", permitindo executar uma reexecução de um pedaço, depois pressione Ctrl + Shift + k (pc) e o html é atualizado muito rapidamente.
Chang02_23 17/07/19
1
Acho que o problema que o OP está enfrentando é que não há realmente uma grande diferença entre os 2. A principal diferença que vejo, que aprendi principalmente ao ler as respostas aqui, é que a RNB permite que você execute pedaços únicos de R codifique de forma independente e "alinhada", enquanto o RMD exige que você renderize ou não o arquivo inteiro. Imagine se você tivesse um arquivo enorme e apenas precisasse verificar um pequeno gráfico. A RNB é boa para isso. O RMD pode demorar muito para renderizar e, portanto, é inconveniente.
Bryan Goggin
@BryanGoggin Você ainda pode executar os pedaços independentes no Rmd.
PagMax
5

Aqui está uma diferença prática que encontrei:

Quando você precisa para comentar uma parte do texto, inserções RMarkdown #em cada linha de seu texto, enquanto RNotebook perfeitamente encapsula texto entre um único par de <!--, --->sinais (como em arquivos de html)

Pode-se dizer, que diferença trivial. No entanto, apenas por causa disso, agora sempre uso o R Notebook (em vez do RMarkdown) no RStudio para todos os meus documentos. Em todo o resto, eles parecem os mesmos (pelo menos para minhas necessidades, como gerar html e pdf)

Caso contrário, meus comentários de repente se tornam cabeçalhos, como abaixo:

# This part is commented out, but will show as Heading 1 font text
IVIM
fonte
4

http://rmarkdown.rstudio.com/r_notebooks.html#notebook_file

"Os documentos comuns do R Markdown são" unidos ", mas os notebooks são" visualizados ". Enquanto a visualização do notebook é semelhante a um documento R Markdown renderizado, a visualização do notebook não executa nenhum dos seus blocos de código R"

Sibo Jiang
fonte
2
Concordo. O recurso "preview" é o único diferenciador entre os dois. Eu me pergunto por que eles se apegam ao Rmarkdown quando o Rnotebook é tudo o que o Rmarkdown é com um recurso de visualização adicional.
PagMax
4

Similarites: O notebook R e o documento R Markdown são praticamente similares. O formato de remarcação funciona nos dois tipos de arquivo. Ambos os formatos de arquivo podem ser usados ​​para comunicar código, juntamente com resultados e comentários para outras pessoas. Pode-se optar por tricotar o documento criado nos formatos de saída HTML, PDF e WORD. Se houver um erro no código, a saída não será gerada. Para executar o arquivo: CTRL + SHIFT + K e inserir o pedaço de código: CTRL + ALT + I.

R Documento de remarcação: O documento Rmd pode ser configurado por meio de um assistente e possui opções para documentos de reprodutibilidade, slides de apresentação, aplicativo brilhante etc. e uma opção para criar documentos a partir de um modelo. Se você alterar o código, a saída é executada na saída Rmd. Ele não oferece a opção de Visualizar o documento. O cabeçalho YAML tem formato de saída como: output: html_document

Documento R Notebook: O documento R nb é iniciado diretamente e nenhum assistente (como no caso de .RMD) é exibido. Juntamente com o arquivo do bloco de anotações, é gerado um arquivo html adicional com a extensão * .nb.html. O notebook tem a opção de visualização. Se qualquer código for alterado ou editado, a nova saída não será mostrada. A saída é mostrada no próprio editor de código. Qualquer que seja a saída antiga, ela é renderizada apenas. Nenhuma nova saída é gerada a partir da alteração do código. Para mostrar a saída do código, precisamos executar o chunk e, em seguida, ele aparecerá na saída. O cabeçalho YAML tem saída como: output: html_notebook

Cabeçalho YAML : se alterarmos o cabeçalho YAML de um arquivo para outro, o tipo do documento será alterado. Por exemplo, você tem um bloco de anotações R com o cabeçalho YAML como html_notebook. Se você alterar o cabeçalho YAML, seu bloco de anotações R será convertido em documento R Markdown.

Se você precisar escolher um, escolha o documento RMarkdown , pois ele oferece mais controle e atualiza os documentos assim que você o tricota.

Saurabh Jain
fonte
3

De jrnold :

Os arquivos do notebook R mostram a saída dentro do editor, enquanto ocultam o console. Os arquivos de marcação R mostram a saída dentro do console e não mostram a saída dentro do editor. Eles diferem no valor da saída em seus cabeçalhos YAML.
O cabeçalho YAML do notebook R terá a linha

---
ouptut: html_notebook
---

O cabeçalho YAML do arquivo de remarcação R terá a linha,

ouptut: html_document

Copiar o cabeçalho YAML de um bloco de anotações R para um arquivo de remarcação R altera-o para um arquivo de remarcação R e vice-versa. Mais especificamente, alterar o valor de outputIsso ocorre porque o IDE RStudio ao abrir e o pacote rmarkdown ao tricotar usa o cabeçalho YAML de um arquivo e, em particular, o valor da outputchave no cabeçalho YAML, para determinar que tipo de documento ele é.

Yang Dai
fonte