In-line R expression returns incorrect value

Sasha

If the R code in Rmd file reuses the same variable name, the inline r expressions seem to return the last value of this variable regardless of the location of the inline expression. Is there away to avoid this behavior except for making sure the same variable name is not reused in different parts of the document?

The reproducible example

---
title: "R Notebook"
output: html_notebook
---


```{r}
df <- cars
nrow(df)
```

The dataset has `r nrow(df)` rows.


```{r}
df <- iris
nrow(df)
```

The dataset has `r nrow(df)` rows.

This produces the following output

enter image description here

I am using: R version 3.3.2 (2016-10-31) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 (build 7601) Service Pack 1

rmarkdown_1.4 knitr_1.15.1

Mallick Hossain

The problem is that in your header, you are "previewing" your file, which does not actually run your code from scratch. You have to knit it to HTML to have it run so that your in-line code is correct.

Problem Header

---
title: "R Notebook"
output: html_notebook
---

Solution Header

---
title: "R Notebook"
output: 
    html_document: default
    html_notebook: default
---

Other Notes

The previous solution has two problems. First, from the RMarkdown documentation, "Inline expressions do not take knitr options" (see end of http://rmarkdown.rstudio.com/lesson-4.html)

Second, the previous answer's YAML is not formatted properly forcing RStudio to actually knit the file. The proper formatting would generate the same problem you are having

---
title: "R Notebook"
output: 
    html_notebook: default
---

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related