Cannot shut off SweaveOpts Concordance = True [duplicate] - r

This question already has an answer here:
r knitr chunk options for figure height / width are not working
(1 answer)
Closed 7 years ago.
UPDATE
SweaveOpts are now shut off and the macro is no longer auto populating, but I still cannot get my plot into the document
I am using R-Studio, the latest version on my laptop and my desktop. All my packages are up-to-date as of this morning. I am trying to on my laptop insert a plot into a pdf. I am using knitr and pdfLatex, the global options in R-Studio are set to knitr and pdfLatex, the same as on my desktop.
When trying this on my laptop the following always appears in my .Rnw file:
\SweaveOpts{concordance=TRUE}
which is preventing me from rendering my pdf the way I want, meaning my plots do not show inside the document but as a separate file. I ensured I have exactly the same settings in R-studio on the laptop and desktop, I am using the same exact version of R in each 3.1.3 and the same exact packages to produce the document knitr and ggplot2
I am completely baffled on how to shut \SweaveOpts{concordance=TRUE} off and make it stay off.
The head of the document on my desktop looks like this:
\documentclass{article}
\begin{document}
\begin{titepage}
\begin{center}
...
And on my laptop for a different document
\documentclass{article}
\usepackage{setspace}
\begin{document}
\begin{title}
\begin{center}
...
I did get rid of the \usepackage{setspace} line just to see if that was the issue and it was not.
I have also noticed that when I insert a code chunk and start to type options inside of it, like fig.align='center' the autocomplete works on the desktop but not the laptop, almost like it does not recognize that the knitr library is loaded.

Try the menu
Tools -> Global Options -> Sweave
and unselect Always enable Rnw concordance (required for Synctex) which should take care of it.

Related

Shiny Server missing charts generated by R markdown file

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!

R notebook stops printing graphs inline

RStudio starts printing graphs to console instead of inline
When I start RStudio R notebook or markdown, I can print graphs (e.g. ggplot2) inline. However, as I start adding more code to the window with tabular output (which shows inline) and then try to print the graph, it begins printing into the console instead of inline. I am not changing the html setup and the original default setup stays the same. When I run Preview Notebook, only the code shows without any output, tabular or graph. When I knit html, both the code and the output (tabular and graph) show.
I cannot detect why RStudio switches from inline to console for graphs, anyone has experience with this? I know it is not specific to the R code (I am using R 3.6.0) since those same charts worked before inline and they show inline on a fresh Notebook / Markdown.
I discovered a workaround:
editor_options:
chunk_output_type: inline
This should not be required because the Notebooks' default is inline and I would not change it. However, this code seems to have fixed the issue.

render SQL in Rmarkdown notebook, not just when knit

If I have an R block in an Rmarkdown notebook, the code is visible in the rendered nb.html file. However, if I have a SQL block, I can't find a way to make the code visible in the rendered file.
However, if I generate an html_document (standard knitr) instead of an html_notebook, the rendered HTML does include the SQL code (and output).
Is there a way to get the notebook output to do something closer to what the knit output does?
I've also encountered this recently, Harlan, and began by asking if there's a way to get notebook output more like knit output.
I then wondered if there was a way to get knit output more like notebook output and realised that there was.
After asking the folks at RStudio, I learnt that you can add the following line to the YAML options in order to generate a html_document that, when rendered, enables the RMD to be downloaded. Specifically, use:
output:
html_document:
code_download: true
I now use that in all of my code and it works well. I hope it helps you, too.

Different versions of the rMarkdown package compile a .Rmd differently

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

Rstudio knit to PDF

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.

Resources