繁体   English   中英

knitr/Rmarkdown pdf 错误“。缺少插入的美元。”

[英]knitr/Rmarkdown pdf error "! Missing $ inserted."

我从 R 脚本执行 Rmarkdown 文档:

wd <- "my working directory"

# Data preparation
species1 <- sample(c("setosa", "versicolor", "virginica"), 1)
species2 <- species1
while (species2 == species1) {
  species2 <- sample(c("setosa", "versicolor", "virginica"), 1)
}

# Create pdf with solutions
show.solutions <- T
rmarkdown::render(input = "uebung02.Rmd", output_file = "uebung02 - Lösung.pdf", output_dir = paste(wd, "pdf", sep = ""))

然后rmarkdown::render渲染 ex02.Rmd (这是本文档中的内容):

---
title: "Übung 02"
subtitle: "Graphische Darstellung von Daten und Stichproben-Kennwerte"
output: pdf_document
---

```{r setup, include = F}
knitr::opts_chunk$set(echo = TRUE)
```


Achte genau auf die Aufgabenstellung, in der stets aufgeführt ist, ob Du nur eine Lösung (Wert, Erklärung), den hierfür verwendeten R-Befehl oder beides angeben sollst.

Versuche Probleme erst selbst zu lösen, bevor Du Dich an einen der TutorInnen wendest. Solltest Du alleine nicht weiterkommen, können diese Dir jederzeit helfen.

Verwende zur Bearbeitung der Aufgaben den Editor (ein R-Skript), nicht die Console! Das hilft nicht nur Dir Fehler, die Du irgendwann vllt. gemacht hast, leichter auszubessern, sondern auch den TutorInnen, um auftretende Probleme leichter verstehen zu können.


```{r, prep.ex01, echo = show.solutions, eval = show.solutions}
# Korrekteure: Dieser Part ist Teil der Randomisierung der Aufgaben
species1
species2
```

1. In dieser Aufgabe sollst Du einige morphometrische Daten für Blütenblätter von *Iris* sp. graphisch aufbereiten. Die Daten liegen bereits in einem Beispieldatensatz in R vor und können mit ```iris``` aufgerufen werden. Einen Überblick über den Datensatz selbst kannst Du Dir mit ```View(iris)``` verschaffen. (Achtung: Da R case sensitive ist, wirst Du mit ```view(iris)``` nicht weiterkommen. Achte in R also generell auf Groß- und Kleinschreibung.)

   a. Plotte für *Iris* *`r species1`* die Sepal-Länge (y-Achse) gegen die Petal-Länge (x-Achse). Die Datenpunkte sollen dabei als rote ausgefüllte Quadrate erscheinen. Limitiere die x-Achse auf Werte von 1 bis 7 und zeichne die y-Achse von 4 bis 8. (Wie das mit dem limitieren der Achsen auf bestimmte Werte funktioniert, findest Du in der Hilfe des ```plot```-Commands.) Bezeichne außerdem den Achsen mit "Petal-Länge" bzw. "Sepal-Länge". Gebe in der Lösung den Code an.
   
```{r, ex01a, echo = show.solutions, eval = F}
plot(iris$Petal.Length[iris$Species == species1],
     iris$Sepal.Length[iris$Species == species1],
     pch = 15, col = "red", xlim = c(1, 7), ylim = c(4, 8), xlab = "Petal-Länge",
     ylab = "Sepal-Länge")
```
   b. Füge nun als blau gefüllte Kreise noch die Werte der selben Variablen für die Art *Iris* *`r species2`* hinzu. Gebe auch hierfür den von Dir verwendeten Code an und lade die erstellte Abbildung in OLAT hoch.
   
```{r, ex01b, echo = show.solutions, eval = F}
points(iris$Petal.Length[iris$Species == species2],
       iris$Sepal.Length[iris$Species == species2],
       pch = 16, col = "blue")
```

```{r, ex01plot, echo = F, eval = T}
plot(iris$Petal.Length[iris$Species == species1],
     iris$Sepal.Length[iris$Species == species1],
     pch = 15, col = "red", xlim = c(1, 7), ylim = c(4, 8), xlab = "Petal-Länge",
     ylab = "Sepal-Länge")

points(iris$Petal.Length[iris$Species == species2],
       iris$Sepal.Length[iris$Species == species2],
       pch = 16, col = "blue")
```

但是,R 无法呈现该文件。 它停止并出现此错误:

! Missing $ inserted.
<inserted text> 
                $
l.206 ...ösung_files/figure-latex/ex01plot-1.pdf}

Error: LaTeX failed to compile D:/biol109 - Biostatistik/Übungen/pdf/uebung02 - Lösung.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See uebung02 - Lösung.log for more info.

首先,我认为这个错误的发生是由于使用美元来调用iris数据集中的变量(例如iris$Petal.Length )。 但是,当使用索引时,同样的错误仍然存在。

因此,我想知道导致此错误的原因以及如何解决它以便 R/Tex 可以呈现 pdf?

任何帮助表示赞赏! 提前谢谢了!

我的 MiKTeX 安装更新出人意料地解决了这些问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM