(Acest articol a fost publicat pentru prima dată pe Terminarea geneticiiși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)
Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.
Repostat din original la https://blog.stephenturner.us/p/turn-new-data-into-quarto-reports-automatically
Pachetul {watcher} R monitorizează sistemul dvs. de fișiere și rulează cod arbitrar atunci când fișierele se modifică. Puteți utiliza acest lucru pentru a automatiza lucruri precum crearea de rapoarte Quarto parametrizate.
—
The observator pachet R (watcher.r-lib.org) monitorizează sistemul de fișiere pentru modificări și poate rula codul automat atunci când datele sunt create sau actualizate.
Un caz de utilizare util pentru aceasta este monitorizarea unui folder pentru modificări, apoi redarea unui raport Quarto pentru orice date noi sosite.
Exemplu simplu aici, începând cu un director de date gol și un șablon Quarto.
$ tree . ├── data └── report.qmd
Acesta este un șablon Quarto parametrizat care utilizează Typst pentru a compila un raport PDF simplu care arată a summary() a unui CSV în care ai citit.
---
title: "Automatically compiled report"
author: "Stephen Turner"
subtitle: "File: `r basename(params$csv_path)`"
date: today
format: typst
params:
csv_path: NA
---
Compiled `r format(Sys.time(), "%Y-%m-%d %H:%M:%S %Z")` from `r params$csv_path`.
```{r}
```
```{r}
df <- read.csv(params$csv_path)
summary(df)
```
Acum să setăm observatorul. Observatorul monitorizează un director pentru fișiere noi, apoi rulează quarto_render trecând noul fișier ca parametru.
library(watcher)
render <- function(paths) {
message(format(Sys.time()), ": ", length(paths), " file(s) changed")
message(paths)
quarto::quarto_render(
"report.qmd",
output_file = basename(paths),
execute_params = list(csv_path = paths),
quiet = TRUE
)
}
w <- watcher(path = "data", callback = render, latency = 1)
w$start()
Acum, ori de câte ori ajung fișiere noi data/ observatorul va reda automat documentul Quarto parametrizat, care doar imprimă un rezumat al datelor. The w$start() nu-mi leagă consola R. Se rulează în fundal.
Acum, când creez noi fișiere CSV în directorul de date, observatorul le găsește și redă rapoartele.
> iris |> write.csv("data/iris.csv")
2026-07-15 05:45:28: 1 file(s) changed
/Users/sdt5z/Downloads/watcher-test/data/iris.csv
> penguins |> write.csv("data/penguins.csv")
2026-07-15 05:45:33: 1 file(s) changed
/Users/sdt5z/Downloads/watcher-test/data/penguins.csv
Cu aceasta ați putea porni monitorul într-un proces R de fundal (de exemplu, rulează sub tmux sau ceva de genul), monitorizarea unui drive partajat sau a unei locații în cloud. Ori de câte ori sosesc date noi, un raport este compilat fără a fi nevoie să faceți nimic.
Mai multe despre pachetul Watcher:
