Difference between revisions of "Dynamic documents"
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''Dynamic documents''' are document that contain both text and output from a programming language in a format where the output gets updated automatically every time the code is run. Using '''dynamic documents''' | '''Dynamic documents''' are document that contain both text and output from a programming language in a format where the output gets updated automatically every time the code is run. Using '''dynamic documents''' goes a long way in promoting [[Research_Ethics#Transparency|research transparency]] because the code and the output are [[Data Documentation|well-documented]]. | ||
== Read First == | == Read First == | ||
* Understanding '''dynamic documents''' will require a basic understanding of | * Understanding '''dynamic documents''' will require a basic understanding of programming languages like [https://www.stata.com/ Stata], [https://rmarkdown.rstudio.com/ R], or [https://www.python.org/ Python]. | ||
* There are various tools that allow users to create '''dynamic documents''' for [[Publishing Data|publishing]] data and output. | * There are various tools that allow users to create '''dynamic documents''' for [[Publishing Data|publishing]] data and output, such as [https://www.overleaf.com/ Overleaf] and [http://jupyter.org/ Jupyter Notebook]. | ||
* '''Dynamic documents''' also make it easier to visualize and document the impact of changes in model parameters - which is particularly useful in development research. | * '''Dynamic documents''' also make it easier to visualize and document the impact of changes in model parameters - which is particularly useful in development research. | ||
== Tools == | == Tools == | ||
There are a wide range of tools that are available for ''' | There are a wide range of tools that are available for creating '''dynamic documents.''' Each of them allows users create and edit the reports using various programming languages like [https://www.r-project.org/ R], [https://www.stata.com/ Stata], and [https://www.python.org/ Python]. | ||
* '''R.''' This language has a feature called [https://rmarkdown.rstudio.com/ R Markdown], which allows users to perform [[Data Analysis|analysis]] using different programming languages, and print the results in the final document along with text to explain the results. | * '''R.''' This language has a feature called [https://rmarkdown.rstudio.com/ R Markdown], which allows users to perform [[Data Analysis|analysis]] using different programming languages, and print the results in the final document along with text to explain the results. | ||
* '''Stata.''' New versions of Stata ([https://www.stata.com/stata15/ version 15] onwards) allow users to [https://www.stata.com/manuals/pdyndoc.pdf create dynamic documents]. The output is usually a PDF file, which contains text, tables and graphs. Whenever there are changes to raw data or in the analysis, the research team only needs to execute one '''do-file''' to create a new document. This improves '''reproducibility''' since users do not have to make changes manually every time. | * '''Stata.''' New versions of Stata ([https://www.stata.com/stata15/ version 15] onwards) allow users to [https://www.stata.com/manuals/pdyndoc.pdf create dynamic documents]. The output is usually a PDF file, which contains text, tables and graphs. Whenever there are changes to raw data or in the analysis, the research team only needs to execute one '''do-file''' to create a new document. This improves '''reproducibility''' since users do not have to make changes manually every time. | ||
Line 13: | Line 13: | ||
* '''Overleaf.''' [https://www.overleaf.com/ Overleaf] is a web-based platform that allows users to collaborate on '''LaTeX''', and receive feedback from other researchers. | * '''Overleaf.''' [https://www.overleaf.com/ Overleaf] is a web-based platform that allows users to collaborate on '''LaTeX''', and receive feedback from other researchers. | ||
* '''Jupyter Notebook.''' [http://jupyter.org/ Jupyter Notebook] can create '''dynamic documents''' in various formats like HTML and '''LaTeX'''. | * '''Jupyter Notebook.''' [http://jupyter.org/ Jupyter Notebook] can create '''dynamic documents''' in various formats like HTML and '''LaTeX'''. | ||
== Related Pages == | |||
[[Special:WhatLinksHere/Dynamic_documents|Click here for pages that link to this topic.]] | |||
== Additional Resources == | == Additional Resources == |
Latest revision as of 17:26, 21 June 2021
Dynamic documents are document that contain both text and output from a programming language in a format where the output gets updated automatically every time the code is run. Using dynamic documents goes a long way in promoting research transparency because the code and the output are well-documented.
Read First
- Understanding dynamic documents will require a basic understanding of programming languages like Stata, R, or Python.
- There are various tools that allow users to create dynamic documents for publishing data and output, such as Overleaf and Jupyter Notebook.
- Dynamic documents also make it easier to visualize and document the impact of changes in model parameters - which is particularly useful in development research.
Tools
There are a wide range of tools that are available for creating dynamic documents. Each of them allows users create and edit the reports using various programming languages like R, Stata, and Python.
- R. This language has a feature called R Markdown, which allows users to perform analysis using different programming languages, and print the results in the final document along with text to explain the results.
- Stata. New versions of Stata (version 15 onwards) allow users to create dynamic documents. The output is usually a PDF file, which contains text, tables and graphs. Whenever there are changes to raw data or in the analysis, the research team only needs to execute one do-file to create a new document. This improves reproducibility since users do not have to make changes manually every time.
- LaTeX. LaTeX is a widely used publication tool. It is a typesetting system that allows users to reference lines of code and outputs such as tables and graphs, and easily update them in a text document. Users can export the results into .tex format after analyzing the data in their preferred software – using stargazer in R, and packages like
esttab
andoutreg2
in Stata. Whenever there are new graphs and tables in the analysis, simply recompile the LaTeX document with the press of a button in order to include the new graphs and tables. - Overleaf. Overleaf is a web-based platform that allows users to collaborate on LaTeX, and receive feedback from other researchers.
- Jupyter Notebook. Jupyter Notebook can create dynamic documents in various formats like HTML and LaTeX.
Related Pages
Click here for pages that link to this topic.
Additional Resources
- DIME Analytics (World Bank), Stata Markdown
- Yihui et. al., R Markdown: The Definitive Guide
- R Studio, R Markdown Cheat Sheet
- R Studio, R Markdown Guide