Is there a way to create an R presentation from the command line?
https://support.rstudio.com/hc/en-us/articles/200486468-Authoring-R-Presentations
I have the following R Presentation file stored in my_file.RPres file.
Title
========================================================
author: Me
date: Jan 9, 2015
transition: none
css: template.css
This is my presentation.
Is there any way to specify on rmarkdown::render(), knit(), pandoc(), or another R command, that this is an "R Presentation" .RPres file, and not ioslides_presentation, beamer_presentation, or slidy_presentation?
My .RPres file does not have any YAML metadata on the header, and the .css file was created based on the html file generated by RStudio with "Preview" and "Save As a Web page...".
I asked this question in on RStudio Support Community page, and the 'official' answer was no. A colleague looked at the code on github and verified the method is only called from the drop down UI. Looks like to do this you would have to actually compile your own wrapper.
Related
I have begun using Rmd to render Powerpoint presentations consistently, using the YAML tags and more importantly, a reference Powerpoint to ensure standardized / consistent formatting:
output: powerpoint_presentation: slide: reference_doc: "reference.pptx". When I want to share a PPT document as a reference for my peers / students however, I want to be able to have my slides available as a .pdf file.
I have had success using shell commands in R using LibreOffice's soffice command, however I am not always at a workstation with that available. Is there a portable solution / executable I can call, or additional Rmd tags for rendering a document with a .pptx reference document, but rendered as a .pdf file?
I believe you have to specifiy output: beamer_presentation in the header.
Take a look at this: https://rmarkdown.rstudio.com/formats.html
I have an R markdown file which I'd like to be available on my corporate Shiny Server.
According to R Markdown: The Definitive Guide I can add runtime: shiny to the YAML metadata at the top of the Rmd file to turn it into a Shiny document. I have done this and it works. If I click "Run Document" in RStudio it will run the Rmd and I will see the report with no problems.
My project is located in the ShinyApps directory where the Shiny Server is looking for apps to serve. When I hit the URL for this project I get the report without any charts. I just get broken image icons where the charts should be. (I am using RStudio Server so it is the exact same files being accessed by RStudio and Shiny Server).
R version 3.4.3, Shiny Server version 1.5.6.875
UPDATE: I have reproduced the behaviour with the simplest possible example. I created a new RStudio project - just a plain project - called TEST located in my ShinyApps directory. Then I created a new R Markdown file, which I called TEST.Rmd. This file is pre-populated with example RMarkdown using the cars and pressure built-in datasets. I changed the YAML header to include runtime: shiny. The RStudio "knit" button is replaced by the "Run Document" button, as expected, and clicking this runs the document and works as expected. Attempting to view the page via the Shiny Server has the same issue whereby the plot is not included; a broken image icon takes its place.
UPDATE 2: As requested, here is the Markdown file. It is literally the sample file generated by RStudio with the addition of runtime: shiny in the YAML header.
---
title: "Test RMarkdown"
author: "Michael Henry"
date: "4/6/2020"
output: html_document
runtime: shiny
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r cars}
summary(cars)
```
## Including Plots
You can also embed plots, for example:
```{r pressure, echo=FALSE}
plot(pressure)
```
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
UPDATE 3: So I went hunting around the server looking for a log file for Shiny Server. I do not have any administrator privileges so I've never looked for this before, but I found a log file which included this: /lib64/libpango-1.0.so.0: undefined symbol: g_log_structured_standard. It turns out there is a bug in RHEL which has a fix available so I have put a request in with my administrator to apply the fix. I will report back after this has been applied as to whether it resolved my issue.
UPDATE 4: It turns out my RHEL server is up-to-date; it already has the version of glib2 suggested by the bugfix. The fact that I am still getting this error is therefore something that my administrator is going to escalate to Red Hat.
UPDATE 5: The Red Hat support suggested there was another glib2 so file lying around and it turned out that this was the case. Removing this file resolved the issue!
So, I think you might need to add some extra code to make the markdown application run as you expect in the Shiny Server environment
try wrapping the charts and plots with the following:
renderPlot({})
This gives the server an order to both run the plot and then make it available to the Shiny document. Shiny is a weird thing to straight up R programmers.
You are basically computing and creating things in an R environment and handing them off to a Javascript/HTML one which needs to know in its own language what to do. That renderPlot({}) tells the JS component how to promote the R output to your page.
You can see from this section of the reference document you linked to what the format is and how it is promoted to the page by Shiny.
If you are still stuck after doing this, reach back out and I will try to help trouble shoot!
Searching for the error message: /lib64/libpango-1.0.so.0: undefined symbol: g_log_structured_standard led to a known issue with RHEL whereby there was an older version of glib2 on the system that did not contain the symbol g_log_structured_standard. In my case the server was up-to-date and had the correct version of glib2, but there was another version of this library lying around which was causing the issue.
The moral of the story: search for the log files early and follow the leads contained therein!
Edit
Thanks to some SO (i.e., #tmpname12345) users, I've come to the conclusion that my problem (described below) is likely caused by the differences between v0.2.64 and v0.3.11 of rmarkdown. The question now becomes:
Is there a way I can prevent rmarkdown version 0.3.11 and knitr from adding a line after the title of a .pdf file?
Original Question
I've come across a curious difference between compiling a .pdf document with the same yaml header block on two different computers with Rstudio and knitr. The difference is that on one computer, an additional line is inserted after the title while on the other, the line is not inserted (the preferred behavior). I would like to prevent the line from being inserted regardless of where the document is compiled.
I am using 32-bit R 3.1.2 on both computers. The yaml block is identical between both computers.
Here is the .Rmd file:
---
title: Header Test
output: pdf_document
---
My#gmail.com\hfill \hfill Address
Phone number\hfill \hfill Town, State, ZIP
Evidence of no additional line after the title, generated from my laptop with rmarkdown version 0.2.64:
Evidence of the additional line after the title, generated from my desktop with rmarkdown version 0.3.11:
Initially, I thought it may have been a function of the knitr package version, so I upgraded the package in the second image from 1.7 to the newest available version on CRAN, 1.9, but the extra line still remains.
I have also considered that this is an artifact of the Rstudio version on my laptop but if it is, I don't want to upgrade as the first image is the preferred.
I routinely edit .Rmd files in my Google Drive folder from both a desktop computer and my laptop, accessing the same file. Unfortunately, they compile differently. I prefer that there is no line added after the title. At this point, I don't want to change anything on my laptop, fearing that compilation will start to include the extra line.
Is there some way I can force knitr to not add the additional line?
One way is to create your own latex template that formats the header like you want. You can use the default template as a starting point here. Then save the file as .tex in the same directory as your Rmd file and add this to the yaml header:
output:
pdf_document:
template: mytemplate.tex
Currently there seem to be two ways to do presentations in R:
RStudio presentations, with .Rpres extension
rmarkdown, with .Rmd extension
To me, it looks like the latter is slightly more powerful. The input format is very similar, yet not identical. I'm thinking about converting an RStudio presentation to rmarkdown. What's the best way to do this? How about the conversion back?
On that note, I'd really like to see an "in-pane" preview for rmarkdown presentations in RStudio, just like for RStudio presentations. I wonder why this isn't implemented -- the preview forcibly shows up in a modal window. Technical issues?
To change from .Rpres to .Rmd you need to change file extension (easy) and the front matter of the markdown document (slightly more involved).
A .Rpres file places the front matter on the first slide:
Untitled
=============================
author: Your Name Here
date: 4 July, 2015
while a .Rmd document places the front matter in a special block:
---
title: "Untitled"
author: "Your Name Here"
date: "04 July, 2015"
output: ioslides_presentation
---
The rest of your presentation code remains in rmarkdown, and should require minimal work to convert.
Some exceptions that I can think of immediately include
ioslides/slidify don't support columns via *** (a real shame, as this is so convenient)
Rpres doesn't support citations and a bibliography (also a shame)
Additionally, when converting you will need to look for any speciall CSS or other directives that are only supported by one framework.
The new version of Rstudio (0.98.932) has many new options including knit to PDF. An article describing the new version has a comment from Dave that says:
...after installing rstudio 0.98.932 I don’t get the little dropdown menu
for knit-pdf or word when editing a .Rmd file.
I'm having the same issue. A helpful response was posted:
It might be that either:
a) You are not running R 3.0 (which is required for RMarkdown v2); or
b) You have a custom markdown renderer defined (markdownToHTML
option). You can check for this by executing:
getOption(“rstudio.markdownToHTML”)
That solved Dave's problem (b), but when I run that command I get NULL
> getOption("rstudio.markdownToHTML")
NULL
Which I assume means I don't have a custom markdown renderer defined. (Previously I did in a cusomized .Rprofile, but I removed that.) My R version is 3.1.0.
Am I misunderstanding the getOption command? Could something else be tripping up my Rstudio?
I have just installed the new version of RStudio (0.98.932), which prompted me to upgrade a couple of packages (I can't remember which, although I see I have knitr 1.6, markdown 0.7 and rmarkdown 0.2.46). At first I had the same problem; there was only a single 'knit' option on the tool bar. I managed to get the ability to knit to .pdf by adding the following to the head of my .Rmd file.
---
title: "Sample Document"
output: pdf_document
---
Having done that, I now find I do have a drop down menu with options to knit to HTML, PDF and word. There's also a little gear icon that provides access to the R Markdown document options that wasn't there before. I have no idea what the problem was but it seems OK now!
Adding on #nicholas response
This is also why I create new .Rmd documents through the RStudio gui
File > New File > R markdown.
This way the YAML header is populated correctly.