> 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/texlive/ar/almharat/kwd-r-knitr.md).

# كود R (knitr)

يوفّر Overleaf تكاملاً مع **knitr**، مما يتيح لك إضافة شيفرة R إلى مستند LaTeX الخاص بك لإنشاء مخرجات ديناميكية.

يجب حفظ المستندات التي تحتوي على شيفرة R بالامتداد `.Rtex` أو `.Rnw`، وإلا فلن تعمل الشيفرة. لِنرَ مثالًا:

{% code overflow="wrap" %}

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

يمكنك كتابة أوامر R في مستند \LaTeX{} الخاص بك، وسيتم معالجتها وإدراج مخرجاتها في المستند:

<<>>=
# إنشاء تسلسل من الأعداد
X = 2:10

# عرض مقاييس إحصائية أساسية
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo1.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F4rB1ItV9jgLU4dT6o3Hf%2FKnitrDemo1.png?alt=media\&token=5b2d4df8-8de9-4bdd-be61-0a3992026edf)

[افتح هذا `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. انظر المثال أدناه:

{% code overflow="wrap" %}

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

يمكنك كتابة أوامر R في مستند \LaTeX{} الخاص بك، وسيتم معالجتها وإدراج مخرجاتها في المستند:

<<echo=FALSE, cache=TRUE>>=
# إنشاء تسلسل من الأعداد
X = 2:10

# عرض مقاييس إحصائية أساسية
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo2.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FHtobrK1TjY4SG4ax2BH5%2FScreenshot%202025-12-16%20143420.png?alt=media\&token=50675660-f20f-44d3-be60-fb91b8dbd255)

[افتح هذا `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، فلن تُشغَّل الكتلة، بل فقط الكائنات التي تولّدها. وهذا يوفر الوقت إذا لم تتغير البيانات في تلك الكتلة.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><em>لاحظ أن الخيار cache=TRUE غير مدعوم حاليًا في Overleaf، لكنه يجب أن يعمل محليًا.</em></p></div>

انظر إلى [دليل المرجع](https://learn.overleaf.com/learn/Knitr#Reference_guide) لمزيد من الخيارات.

### الأوامر المضمنة

يمكن الوصول إلى الكائنات التي تم توليدها في كتلة وطباعتها ضمن السطر.

{% code overflow="wrap" %}

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

يمكنك كتابة أوامر R في مستند \LaTeX{} الخاص بك، وسيتم معالجتها وإدراج مخرجاتها في المستند:

<<echo=FALSE, cache=TRUE>>=
# إنشاء تسلسل من الأعداد
X = 2:10

# عرض مقاييس إحصائية أساسية
summary(X)

@

إذن، متوسط البيانات هو $\Sexpr{mean(X)}$
\end{document}
```

{% endcode %}

![KnitrDemo3.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2Fbyz9VKDCCPcoWHbznSJ4%2FScreenshot%202025-12-16%20143647.png?alt=media\&token=9d5ef4de-f413-4bf2-83c8-bf2171f50dee)

[افتح هذا `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، كما في هذا المثال:

{% code overflow="wrap" %}

```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}
```

{% endcode %}

![KnitrDemo4.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F5NI4NOJICjnYf8Z2Me1b%2FScreenshot%202025-12-16%20143811.png?alt=media\&token=d937786f-da22-4cbd-9adf-f277ec9f77c4)

[افتح هذا `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"` معلمة التموضع. وهذا هو نفسه المستخدم في [بيئة الشكل](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`عرض الشكل وارتفاعه.`fig.cap="First plot"`تعليق توضيحي للشكل.

### برامج R النصية الخارجية

يمكنك استيراد أجزاء من برنامج R نصي خارجي إلى مستند knitr. وهذا مفيد جدًا لأن من الشائع إلى حد كبير كتابة البرنامج النصي وتصحيح أخطائه في برنامج خارجي قبل تضمينه في مستندك.

لنفترض أن لدينا شيفرة R التالية في ملف يُسمّى `mycode.R` الذي ندرجه في مستند LaTeX الخاص بنا:

```r
## ---- myrcode1
# إنشاء تسلسل من الأعداد
 X = 2:10

## ---- myrcode2
# عرض مقاييس إحصائية أساسية
summary(X)
```

لاحظ الأسطر:

```r
## ---- myrcode1
```

و

```r
## ---- myrcode2
```

هذه تُشير إلى بداية كتلة من الشيفرة وهي إلزامية إذا كنت تريد استخدام هذا البرنامج النصي في مستندنا، كما هو موضح في مقطع الشيفرة التالي:

```r
الكتلة أدناه لن تُطبع

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

يجب أن تظهر الشيفرة هنا

<<myrcode2>>=

@
```

![KnitrDemo5.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FPzKSGsFTMdhs9K8dE8Ny%2FKnitrDemo5.png?alt=media\&token=9c32c381-7621-4b7d-9d73-c1e7a0b6aac8)

الكتلة الأولى لا تُطبع وتُستخدم فقط لاستيراد البرنامج النصي باستخدام الأمر `read_chunk("mycode.R")` . لهذا السبب تم تعيين الخيار `echo=FALSE` كما يجب ألا تُخزَّن البرامج النصية مؤقتًا. بمجرد استيراد البرنامج النصي، يمكنك طباعة كتلة باستخدام الوسم الذي عيّنته بعد `## ----`. في هذه الحالة هو `myrcode2`.

لقد جمعنا كل مقاطع شيفرة المقالة في مشروع يمكن [فتحُه على Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### دليل المرجع

بعض خيارات الكتلة:

* `results`. يغيّر سلوك النتائج التي تولدها شيفرة R. القيم الممكنة هي:
  * `markup` استخدم LaTeX لتنسيق المخرجات.
  * `asis` اطبع النتائج الخام من R.
  * `hold` احتفظ بنتائج المخرجات وادفعها إلى نهاية الكتلة.
  * `hide` أخفِ النتائج.
* `echo`. ما إذا كان يجب تضمين شيفرة مصدر R. وتشمل المعلمات الأخرى:
  * `echo=2:3` يطبع السطرين الثاني والثالث فقط؛
  * `echo=-2:-3` يستثني السطرين الثاني والثالث فقط.
* `cache`. ما إذا كان يجب تخزين كتلة الشيفرة مؤقتًا. القيم الممكنة هي: `TRUE` و `FALSE`
* `highlight`. ما إذا كان يجب تمييز شيفرة المصدر. القيم الممكنة هي: `TRUE` و `FALSE`
* `background`. لون خلفية الكتلة. يمكن استخدام صيغ rgb وHTML. والقيمة الافتراضية هي *"#F7F7F7"*.


---

# 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/texlive/ar/almharat/kwd-r-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.
