knitr
ocenia opcje porcji jako kod R. Dlatego, aby zawierać wartość zmiennej w podpisie rysunku, tylko komponować żądany ciąg używając paste
lub sprintf
:
fig.cap = paste("Graph of", nrow(data), "data points")
Należy pamiętać, że może to być problematyczne, jeśli data
jest tworzony wewnątrz tego kawałka (a nie w poprzednim kawałku), ponieważ domyślnie opcje porcji są oceniane przed sam fragment jest oceniany.
Aby rozwiązać ten problem, należy wybrać opcję pakietu eval.after
mieć możliwość fig.cap
być oceniana po sam kawałek został oceniony:
library(knitr)
opts_knit$set(eval.after = "fig.cap")
Oto kompletny przykład:
---
title: "SO"
output:
word_document:
fig_caption: yes
---
```{r fig.cap = paste("Graph of", nrow(iris), "data points.")}
plot(iris)
```
```{r setup}
library(knitr)
opts_knit$set(eval.after = "fig.cap")
```
```{r fig.cap = paste("Graph of", nrow(data2), "data points.")}
data2 <- data.frame(1:10)
plot(data2)
```
Pierwszy podpis figurki działa nawet bez eval.after
, ponieważ zbiór danych iris
jest zawsze dostępny (o ile dołączono datasets
). Generowanie drugiego podpisu na figurze zakończyłoby się niepowodzeniem bez eval.after
, ponieważ data2
nie istnieje przed oceną ostatniego fragmentu.
Proszę wypróbować 'wklej (" Wykres ", nrow (dane)," punkty danych ")'. –