> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/el/perissotera-themata/29-knitr.md).

# Knitr

Όπως σημειώνεται στη Βικιπαίδεια, [Το Knitr είναι μια μηχανή για τη δυναμική δημιουργία αναφορών με τη R](https://en.wikipedia.org/wiki/Knitr), μια γλώσσα προγραμματισμού προσανατολισμένη στη στατιστική. Αυτό το άρθρο εξηγεί πώς να προσθέσετε κώδικα R στο έγγραφο LaTeX σας για να δημιουργήσετε δυναμική έξοδο.

Σε μια τυπική διανομή LaTeX πρέπει να έχετε ρυθμίσει τη R στο λειτουργικό σας σύστημα και να εκτελέσετε κάποιες ειδικές εντολές για να το μεταγλωττίσετε. Το Overleaf μπορεί να σας γλιτώσει από τον κόπο, **knitr** λειτουργεί αμέσως χωρίς επιπλέον ρυθμίσεις.

## Εισαγωγή

Τα έγγραφα που περιέχουν κώδικα R πρέπει να αποθηκεύονται με την επέκταση `.Rtex` ή `.Rnw`, διαφορετικά ο κώδικας δεν θα λειτουργήσει. Ας δούμε ένα παράδειγμα:

```latex
\documentclass{article}
\begin{document}

Μπορείτε να πληκτρολογήσετε εντολές R στο έγγραφο σας \LaTeX{} οι οποίες θα επεξεργαστούν και η έξοδός τους θα συμπεριληφθεί στο έγγραφο:

<<>>=
# Δημιουργήστε μια ακολουθία αριθμών
X = 2:10

# Εμφάνιση βασικών στατιστικών μεγεθών
summary(X)

@
\end{document}
```

![KnitrDemo1.png](/files/cbad561aa6de12a3cb61437490ca24c6fa538f31)

&#x20;[Ανοίξτε αυτό το `knitr` παράδειγμα στο Overleaf](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Όπως βλέπετε, το κείμενο ανάμεσα στους χαρακτήρες `<<>>=` και `@` είναι κώδικας R, αυτός ο κώδικας και η έξοδός του εκτυπώνονται σε μορφή παρόμοια με λίστα. Αυτό το τμήμα κώδικα μπορεί να δεχτεί μερικές επιπλέον παραμέτρους για να προσαρμόσει τη δυναμική έξοδο. Δείτε την επόμενη ενότητα.

## Τμήματα κώδικα

Ένα μπλοκ κώδικα όπως αυτό που παρουσιάστηκε στην προηγούμενη ενότητα συνήθως ονομάζεται *τμήμα*. Μπορείτε να ορίσετε κάποιες επιπλέον επιλογές στα τμήματα knitr. Δείτε το παρακάτω παράδειγμα:

```latex
\documentclass{article}
\begin{document}

Μπορείτε να πληκτρολογήσετε εντολές R στο έγγραφο σας \LaTeX{} οι οποίες θα επεξεργαστούν και η έξοδός τους θα συμπεριληφθεί στο έγγραφο:

<<echo=FALSE, cache=TRUE>>=
# Δημιουργήστε μια ακολουθία αριθμών
X = 2:10

# Εμφάνιση βασικών στατιστικών μεγεθών
summary(X)

@
\end{document}
```

![KnitrDemo2.png](/files/86f723a85453a73e86d9daee9af59c83494e4868)

&#x20;[Ανοίξτε αυτό το `knitr` παράδειγμα στο Overleaf](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Υπάρχουν τρεις επιπλέον επιλογές που περνούν μέσα στο `<<` και `>>`.

**echo=FALSE**

Αυτό κρύβει τον κώδικα και εκτυπώνει μόνο την έξοδο που παράγεται από τη R.

**cache=TRUE**

Αν το cache οριστεί σε true, το τμήμα δεν εκτελείται, μόνο τα αντικείμενα που παράγει. Αυτό εξοικονομεί χρόνο αν τα δεδομένα σε αυτό το τμήμα δεν έχουν αλλάξει. Σημειώστε ότι η επιλογή cache=TRUE δεν υποστηρίζεται προς το παρόν στο Overleaf, αλλά θα πρέπει να λειτουργεί τοπικά.

Δείτε το [οδηγό αναφοράς](#reference-guide) για περισσότερες επιλογές.

## Εντολές εντός κειμένου

Είναι δυνατό να αποκτήσετε πρόσβαση σε αντικείμενα που δημιουργούνται σε ένα τμήμα και να τα εκτυπώσετε εντός της γραμμής.

```latex
\documentclass{article}
\begin{document}

Μπορείτε να πληκτρολογήσετε εντολές R στο έγγραφο σας \LaTeX{} οι οποίες θα επεξεργαστούν και η έξοδός τους θα συμπεριληφθεί στο έγγραφο:

<<echo=FALSE, cache=TRUE>>=
# Δημιουργήστε μια ακολουθία αριθμών
X = 2:10

# Εμφάνιση βασικών στατιστικών μεγεθών
summary(X)

@

Άρα, ο μέσος όρος των δεδομένων είναι $\Sexpr{mean(X)}$
\end{document}
```

![KnitrDemo3.png](/files/b11e7fdbfca842ecfa6d79c5902ea08c96ed6497)

&#x20;[Ανοίξτε αυτό το `knitr` παράδειγμα στο Overleaf](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Η εντολή `\Sexpr{mean(X)}` εκτυπώνει την έξοδο που επιστρέφει ο κώδικας R `mean(X)`. Μέσα στις αγκύλες μπορεί να δοθεί οποιαδήποτε εντολή R.

## Γραφήματα

Γραφήματα μπορούν επίσης να προστεθούν σε ένα **knitr** έγγραφο. Δείτε το επόμενο παράδειγμα

```latex
\documentclass{article}
\begin{document}

<<plot1, fig.pos="t", fig.height=4, fig.width=4, fig.cap="First plot">>=

xdata = read.csv(file="data.txt", head=TRUE,sep=" ")

hist(xdata$data, main="Overleaf histogram", xlab="Data")

@

Το σχήμα \ref{fig:plot1} είναι ένα απλό ιστόγραμμα.

\end{document}
```

![KnitrDemo4.png](/files/592dfa81cf0b07b6211903624aa06caacbdfa356)

&#x20;[Ανοίξτε αυτό το `knitr` παράδειγμα στο Overleaf](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Αυτό το ιστόγραμμα χρησιμοποιεί δεδομένα αποθηκευμένα στο "data.txt", που είναι αποθηκευμένο στον τρέχοντα κατάλογο εργασίας. Στο τμήμα περνούν μερικές επιλογές σχετικές με το σχήμα.

**plot1**

Αυτή είναι η ετικέτα που χρησιμοποιείται για την αναφορά στο γράφημα. Το πρόθεμα "fig:" είναι υποχρεωτικό. Μπορείτε να δείτε στο παράδειγμα ότι το σχήμα αναφέρεται με \ref{fig:plot1}.

**fig.pos="t"**

Παράμετρος τοποθέτησης. Είναι η ίδια που χρησιμοποιείται στο περιβάλλον figure.

**fig.height=4, fig.width=4**

Πλάτος και ύψος του σχήματος.

**fig.cap="First plot"**

Λεζάντα του σχήματος.

## Εξωτερικά σενάρια R

Μπορείτε να εισαγάγετε μέρη ενός εξωτερικού σεναρίου R σε ένα **knitr** έγγραφο. Αυτό είναι πολύ χρήσιμο, καθώς είναι αρκετά συνηθισμένο να γράφετε και να αποσφαλματώνετε το σενάριο σε ένα εξωτερικό πρόγραμμα πριν το συμπεριλάβετε στο έγγραφό σας.

Ας υποθέσουμε ότι έχουμε τον ακόλουθο κώδικα R σε ένα αρχείο με όνομα `mycode.R` το οποίο συμπεριλαμβάνουμε στο έγγραφο LaTeX μας:

```latex
## ---- myrcode1
# Δημιουργήστε μια ακολουθία αριθμών
 X = 2:10

## ---- myrcode2
# Εμφάνιση βασικών στατιστικών μεγεθών
summary(X)
```

Παρατηρήστε τις γραμμές

```latex
## ---- myrcode1
```

και

```latex
## ---- myrcode2
```

Αυτές σηματοδοτούν την αρχή ενός τμήματος κώδικα και είναι υποχρεωτικές αν θέλετε να χρησιμοποιήσετε αυτό το σενάριο στο έγγραφό μας, όπως φαίνεται στο ακόλουθο απόσπασμα κώδικα:

```latex
Το παρακάτω τμήμα δεν θα εκτυπωθεί

<<echo=FALSE, cache=FALSE>>=
read_chunk("mycode.R")
@

Ο κώδικας πρέπει να εμφανιστεί εδώ

<<myrcode2>>=

@
```

![KnitrDemo5.png](/files/717cb66906f901723b884563b8f61e42b9c10f82)

Το πρώτο τμήμα δεν εκτυπώνεται, χρησιμοποιείται μόνο για την εισαγωγή του σεναρίου με την εντολή `read_chunk("mycode.R")`, γι' αυτό η επιλογή `echo=FALSE` ορίζεται. Επίσης, τα σενάρια δεν πρέπει να αποθηκεύονται στην cache. Μόλις εισαχθεί το σενάριο, μπορείτε να εκτυπώσετε ένα τμήμα χρησιμοποιώντας την ετικέτα που ορίσατε μετά το `## ----`. Σε αυτή την περίπτωση είναι `myrcode2`.

Έχουμε βάλει όλα τα αποσπάσματα κώδικα του άρθρου σε ένα έργο που  [μπορείτε να το ανοίξετε στο Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

## Οδηγός αναφοράς

**Ορισμένες επιλογές τμήματος**

* `αποτελέσματα`. Αλλάζει τη συμπεριφορά των αποτελεσμάτων που παράγονται από τον κώδικα R, οι πιθανές τιμές είναι
  * `markup` Χρησιμοποιήστε LaTeX για τη μορφοποίηση της εξόδου.
  * `asis` Εκτυπώνει ακατέργαστα αποτελέσματα από τη R.
  * `hold` Κρατά τα αποτελέσματα της εξόδου και τα σπρώχνει στο τέλος του τμήματος.
  * `hide` Κρύβει τα αποτελέσματα.
* `echo`. Αν θα συμπεριληφθεί ο πηγαίος κώδικας R. Μπορεί να δεχτεί άλλες παραμέτρους, `echo=2:3` εκτυπώνει μόνο τη δεύτερη και τρίτη γραμμή; `echo=-2:-3` εξαιρεί μόνο τη δεύτερη και τρίτη γραμμή.
* `cache`. Αν θα αποθηκευτεί στην cache το τμήμα κώδικα. Οι πιθανές τιμές είναι `TRUE` και `FALSE`
* `highlight`. Αν θα επισημανθεί ο πηγαίος κώδικας. Οι πιθανές τιμές είναι `TRUE` και `FALSE`
* `background`. Χρώμα φόντου του τμήματος, μπορούν να χρησιμοποιηθούν οι μορφές rgb και HTML, η προεπιλεγμένη τιμή είναι *"#F7F7F7"*.

## Περαιτέρω ανάγνωση

Για περισσότερες πληροφορίες δείτε

* [Επισήμανση κώδικα με το minted](/latex/el/morfopoiisi/12-code-highlighting-with-minted.md)
* [Χρήση χρωμάτων στο LaTeX](/latex/el/morfopoiisi/13-using-colors-in-latex.md)
* [γραφήματα στο LaTeX](/latex/el/eidiko-pedio/08-pgfplots-package.md)
* [Εισαγωγή εικόνων](/latex/el/perissotera-themata/27-inserting-images.md)
* [Πίνακες](/latex/el/sximata-kai-pinakes/01-tables.md)
* [Τοποθέτηση εικόνων και πινάκων](/latex/el/sximata-kai-pinakes/02-positioning-images-and-tables.md)
* [Πακέτο TikZ](/latex/el/sximata-kai-pinakes/05-tikz-package.md)
* [Μαθηματικές παραστάσεις](/latex/el/mathimatika/01-mathematical-expressions.md)
* [το **knitr** ιστοσελίδα](http://yihui.name/knitr/)
* [το **knitr** εγχειρίδιο του πακέτου](https://bitbucket.org/stat/knitr/downloads/knitr-manual.pdf)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/el/perissotera-themata/29-knitr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
