# لغة R في Maguyva: رسوم بيانية لشيفرة التحليل والحزم

Canonical source: https://maguyva.ai/ar/languages/r

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

يدعم Maguyva لغة R بشجرة AST والرموز والرسم البياني، ليتمكن وكلاء الذكاء الاصطناعي من تتبّع الدوال وتوزيع S3 وS4 واستدعاءات ملاءمة النماذج عبر نصوص R وحزمها.

## لمحة عن الدعم

- المستوى: دعم AST والرموز
- البرمجة
- الامتدادات: .r, .rmd, .rnw
- تحليل AST حقيقي لبحث واعٍ بالصياغة النحوية وسياق بنيوي.
- تُغذّي الرموز المسمّاة البحث الدلالي والمراجع المتقاطعة. ويتوفر التنقل عبر الرسم البياني عند تمكين استخراج العلاقات.
- تُسهم هذه اللغة بالرموز والعلاقات في البحث المراعي لبنية الرسم البياني؛ وتختلف أنواع الحواف المدعومة بحسب التراكيب الأصلية في اللغة.
- يتوفر كل من تحليل AST واستخلاص الرموز.

## الأنسب لـ

- حزم R التي تضم دوالًا مُصدَّرة كثيرة وتوابع S3 ودوال مساعدة داخلية.
- خطوط التحليل الموزّعة على نصوص تتشارك دوال تنظيف البيانات والنمذجة.
- فرق البيانات التي تسلّم شيفرة R إلى وكلاء ذكاء اصطناعي يحتاجون إلى معرفة الدوال التي تغذّي كل نموذج.

## سير عمل الوكلاء

- العثور على كل مستدعٍ لدالة تنظيف بيانات قبل تغيير الأعمدة التي تُرجعها.
- تتبّع الدوال التي توزّع عبر `UseMethod` وأين توجد توابعها.
- رسم خريطة للمسار من تحميل البيانات الخام إلى النموذج المُلاءَم.

## أين تُربك R أدوات الذكاء الاصطناعي السطحية

تضع R الدوال الأساسية ودوال الحزم ودوالّك أنت في فضاء أسماء مسطّح واحد. النقاط جزء من الأسماء وليست وصولًا إلى عضو: `is.na` و`data.frame` و`print.summary_table` معرّفات مفردة. والأداة التي تقرأ `print.summary_table` بوصفه تابعًا على `print` تخطئ في البنية، والأداة التي تسجّل كل استدعاء أساسي تدفن دوالّك تحت `c()` و`paste()`.

يحافظ Maguyva على أسماء R كاملة ويرشّح ضجيج الدوال الأساسية، فيرى الوكيل الدوال التي يعتمد عليها تحليلك فعلًا.

## ما الذي يستخرجه Maguyva من R

يربط Maguyva ملفات `.R` و`.Rmd` و`.Rnw` بلغة R. تُستخرج الدوال المُسندة إلى اسم، مثل `clean_survey <- function(df)`، تحت ذلك الاسم، ولا تُعامل الدوال المجهولة بوصفها تعريفات. ولا تُقسَّم الأسماء المنقّطة أبدًا إلى مستقبِل وعضو.

تبقى بعض استدعاءات R الأساسية في الرسم البياني عن قصد لأنها تُظهر كيف تترابط شيفرة التحليل: توزيع S3 وS4 (`UseMethod` و`standardGeneric`)، وعائلة apply (`lapply` و`sapply` و`vapply` و`mapply`)، وملاءمة النماذج (`lm` و`predict` و`anova`)، وتحميل الحزم (`library` و`require`)، ومعالجة الأخطاء باستخدام `tryCatch`.

ويسجّل الرسم البياني أيضًا إنشاء النُسخ والقراءة والكتابة.

## أمثلة على مطالبات الوكلاء

- "من يستدعي `clean_survey`، وأي النماذج تستخدم مخرجاتها؟" (`find_symbol` ثم `dependency_search` في الاتجاه الوارد)
- "ما الدوال التي تستدعي `fit_model`؟" (`dependency_search`)
- "تتبّع المسار من `load_raw_data` إلى الانحدار النهائي." (`get_task_context`)

## القيود المعروفة

- يُستبعد من العلاقات نحو 800 اسم من R الأساسية و`stats` و`graphics`، مثل `print` و`paste` و`c` و`data.frame` واستدعاءات الرسم ومولّدات الأعداد العشوائية. استخدم `text_pattern_search` لها.
- تنشئ R الفئات وتحمّل الحزم باستدعاءات دوال عادية، لذا لا تختار الإعدادات المسبقة `classes` و`imports` و`variables` في `structural_search` شيئًا. استخدم `find_symbol` و`text_pattern_search`.
- تُقرأ ملفات `.Rmd` و`.Rnw` كاملة بقواعد R النحوية بدلًا من قراءتها مقطعًا مقطعًا، فتوقّع نتائج جزئية لمستندات R Markdown وSweave.
- لا تملك R صيغة للمزخرفات، لذا تُعلَّم علاقات المزخرفات بأنها غير قابلة للتطبيق.

## الخطوات التالية

اربط مستودعًا عبر [دليل البدء السريع](/ar/docs/quickstart)، ثم راجع مصفوفة الدعم في [صفحة التوافق](/ar/docs/compatibility). ولمستودعات علم البيانات المختلطة، اقرأ أيضًا [دليل لغة Python](/ar/languages/python).

## تفاصيل المحرك

- يربط دعم R الملفات `.R` و`.Rmd` و`.Rnw` بلغة R. تُستخرج الدوال المُسندة إلى اسم تحت ذلك الاسم، وتبقى الأسماء المنقّطة مثل `data.frame` كاملة.
- يبقى توزيع S3 وS4 (`UseMethod` و`standardGeneric`) وعائلة apply و`lm` و`predict` و`tryCatch` في الرسم البياني عن قصد.
- يُستبعد من العلاقات نحو 800 اسم من R الأساسية و`stats` و`graphics`، مثل `print` و`paste` و`c`.

## نقاط دخول مفيدة عبر MCP

- `find_symbol`: استخدمه لاسم دالة تنظيف أو نمذجة أو تابع S3 عندما تحتاج إلى التعريف والمستدعين.
- `dependency_search`: استخدم الاجتياز الوارد على دالة مساعدة لرؤية التحليلات التي تعتمد عليها قبل تغيير مخرجاتها.
- `get_task_context`: استخدمه لمطالبات مثل "تتبّع المسار من تحميل البيانات الخام إلى الانحدار النهائي".
