Functionally, Rmarkdown provides a solution to the problem of separating our work (i.e., our R code) from the reporting of our results.
More specifically, it is a toolkit which allow us to tightly integrate any code used to solve a problem, the results of running that code, and the human-readable explanation of the methods and the solution.
By using the Rmarkdown toolkit, we can blend human language, computer language, and computer output in a single, executable file.
The final product of our work becomes a typeset PDF or HTML document explaining all of our work and results, rather than an arcane R script and console output with random copy-pasta to a word document.