مقدمة إلى لغة R: ما هي لغة البرمجة الإحصائية R؟
تُعد لغة R اللغة الأكثر شيوعًا في العالم في مجال الحوسبة الإحصائية والرسوم البيانية — فهي تجعل تحليل البيانات وتصورها أمرًا بسيطًا واحترافيًّا.
صُمم هذا البرنامج التعليمي للمبتدئين الذين لا يمتلكون أي خبرة سابقة، حيث يبدأ بـ «ما هو R؟» ويتطور تدريجيًّا حتى تصل إلى مرحلة تمكنك من إنجاز مشروع كامل لتحليل البيانات باستخدام لغة R. وتُعد لغة R المعيار السائد في مجال البحث الأكاديمي وعلم البيانات والنمذجة الإحصائية، ويستخدمها أكثر من 2.5 مليون عالم بيانات حول العالم.
1. ما ستتعلمه
- ما هو R، وما هي وظائفه؟
- الاختلافات بين لغتي R وPython وحالات الاستخدام المناسبة لكل منهما
- تاريخ لغة R وفلسفة تصميمها
- تثبيت R على أنظمة التشغيل Windows وmacOS وLinux
- تثبيت بيئة تطوير التطبيقات (IDE) RStudio واستخدامها
- اكتب برنامجك النصي الأول بلغة R وقم بتشغيله
- منظومة حزم R (CRAN وtidyverse)
2. قصة حقيقية لمحلل بيانات
(1) المعاناة: لم يعد برنامج Excel قادرًا على تحمل ذلك
أليس هي محللة سوقية تلقت مؤخرًا مهمة عاجلة:
"قم بتجميع @,000 صف من بيانات المبيعات خلال الـ 12 شهراً الماضية في تقرير اتجاهات من 6 صفحات يغطي أبعاداً مختلفة؛ حيث يحتاج المدير إلى الاطلاع عليه صباح الغد."
فتح برنامج «إكسل» لبدء العمل، ليجد أن:
- @,000 صف من البيانات يستغرق فتح ملف Excel وحده 5 دقائق.
- أريد إنشاء 6 مخططات ذات أبعاد مختلفة، لكن النسخ واللصق المتكرر + استخدام الجداول المحورية سيستغرق 3 ساعات.
- لحساب ملخص استنادًا إلى الأبعاد الثلاثة «المنطقة، والشهر، والمنتج»، يتعين عليك استخدام دالة VLOOKUP متداخلة من 3 مستويات.
- تعطل برنامج «إكسل» مرتين أثناء أداء المهمة، وكاد أن يحطم جهاز الكمبيوتر الخاص به.
كيف تمكن من فعل ذلك في النهاية؟ لقد تحول إلى R.
(2) الحل باستخدام لغة R
بالنسبة للمهمة نفسها، تكتب أليس ما يلي بلغة R:
# Load the entire data analysis toolkit with a single line of code
library(tidyverse)
# Read in a single line of code @,000 rows ofData(5 Done in a second)
sales <- read_csv("sales_2024.csv")
# Draw with one line of code 6 Post a picture
sales |>
group_by(region, month) |>
summarise(total = sum(amount)) |>
ggplot(aes(x = month, y = total, color = region)) +
geom_line() +
facet_wrap(~ product) +
labs(title = "2024 Annual Sales Trends(By Region/Products)")
المدة الإجمالية: 5 دقائق — 5 ثوانٍ لقراءة البيانات، وثانية واحدة لتجميعها، و3 ثوانٍ لإنشاء 6 رسوم بيانية، وقضيت بقية الوقت في صقل العناوين.
هذا هو جمال لغة R: إجراء تحليلات البيانات الأكثر تعقيدًا بأقل قدر ممكن من الأكواد. وتتمثل فلسفة تصميمها في «تمكين الإحصائيين من التركيز على التفكير، بدلاً من إضاعة الوقت في التعامل مع الأدوات».
3. ما هو R؟
R هي لغة برمجة مخصصة للحسابات الإحصائية والرسومات، أنشأها في عام 1993 كل من روس إيهاكا وروبرت جنتلمان في جامعة أوكلاند بنيوزيلندا.
(1) الأدوار الثلاثة الرئيسية لـ R
| الفئة | الوصف |
|---|---|
| منصة عمل الإحصائي | تتضمن أكثر من 8,000 دالة إحصائية تغطي جميع الأساليب الإحصائية، بما في ذلك الإحصاء الوصفي، واختبار الفرضيات، والانحدار، والتحليل البايزي، وتحليل السلاسل الزمنية، وغير ذلك |
| فرشاة عالم البيانات | تتيح لك صيغة رسم المخططات في ggplot2 إنشاء رسوم بيانية بجودة النشر في سطر واحد من التعليمات البرمجية، متفوقةً بذلك على النمط الافتراضي لمكتبة matplotlib في لغة Python |
| معايير البحث القابل للتكرار | يجمع R Markdown بين الأكواد والمعادلات والأشكال والنصوص في مستند واحد — وهو المعيار المتبع لتقديم الأبحاث إلى المجلات العلمية |
(2) المزايا الأساسية للغة R
- أشمل مجموعة من الأساليب الإحصائية: بدءًا من اختبارات t الأساسية وصولاً إلى الاستدلال البايزي المتطور، توفر لغة R حزمًا جاهزة للاستخدام لكل شيء
- الريادة في مجال التصور: يُعد ggplot2 المعيار الذهبي في مجال تصور البيانات، وقد تم اعتماده على نطاق واسع في لغتي Python وJavaScript.
- المعايير الأكاديمية: 90% من المقالات المنشورة في المجلات العلمية في مجالات الإحصاء والطب والاقتصاد تستخدم لغة البرمجة R
- منظومة حزم برمجية غنية: أكثر من 20,000 حزمة برمجية مفتوحة المصدر خضعت للمراجعة من قبل الأقران على CRAN
- قابلية التكرار: يجمع R Markdown بين «الكود والبيانات والورقة البحثية» في كيان موحد
4. الاختلافات بين لغتي R و Python
يسأل العديد من المبتدئين: «هل يجب أن أتعلم لغة R أم لغة Python؟» والجواب هو تعلم كلتا اللغتين — ولكن لأغراض مختلفة.
(1) رسم بياني واحد لفهم الاختلافات في تحديد المواقع
graph TB
subgraph Division of Labor Among Programming Languages
A[R<br/>Statistical Analysis<br/>Academic Research<br/>Data Visualization]
B[Python<br/>Web Development<br/>Machine Learning<br/>Automation Engineering]
C[SQL<br/>Database Query]
D[JavaScript<br/>Front-End Interaction]
end
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#f0e1ff
style D fill:#e1ffe1
(2) جدول المقارنة سداسي الأبعاد
| البعد | R | بايثون |
|---|---|---|
| أهداف التصميم | للإحصائيين | لغة برمجة متعددة الأغراض |
| مجالات الخبرة | التحليل الإحصائي، وتصور البيانات، والبحث الأكاديمي | الويب، والتعلم الآلي، والأتمتة، والهندسة العامة |
| علم البيانات | تسلسل مكتبة tidyverse + ggplot2 | pandas + matplotlib/sklearn |
| منحنى التعلم | البرمجة الوظيفية + المفاهيم الإحصائية | البرمجة الأمرية + هندسة البرمجيات |
| منظومة الحزم | أكثر من 20,000 حزمة إحصائية على CRAN | أكثر من 400,000 حزمة للأغراض العامة على PyPI |
| المخرجات | تقرير البيانات (R Markdown) | التطبيق (Django/Flask) |
(3) خلاصة موجزة
- إجراء التحليلات الإحصائية، وإنشاء الرسوم البيانية، وكتابة الأوراق البحثية → استخدم لغة R
- إنشاء المنتجات، وتطوير المواقع الإلكترونية، والعمل مع الذكاء الاصطناعي → استخدم لغة Python
- معالجة البيانات → كلاهما مناسب، لكن لغة R تُعتبر أكثر «أصالة» في مجال علم البيانات
5. ولادة R
(1) لغة لها قصة
لم يتم تصميم لغة R من العدم؛ بل لها مسار تطوري واضح:
- 1976: طورت مختبرات بيل لغة S (التي صُممت خصيصًا للتحليل الإحصائي)
- 1993: صمم روس إيهاكا وروبرت جنتلمان لغة R استنادًا إلى لغة S
- أصل الاسم: مشتق من الحروف الأولى من اسمي المؤلفين (روس + روبرت)، كما أنه يمثل تكريمًا للغة S
- 2000: تم إصدار الإصدار R 1.0، مما يمثل دخول لغة R إلى مرحلة النضج
- 2015: تم إصدار الإصدار R 3.0، الذي أدى إلى تحسينات كبيرة في الأداء
- 2024: R 4.4.x (الإصدار الرئيسي الحالي)
(2) لماذا استمرت R لمدة 30 عامًا؟
لغة R ليست لغة «مثالية» (فبنيتها النحوية تنطوي على بعض الميزات الغريبة، كما أن بيئة التطوير المتكاملة (IDE) بطيئة في التشغيل)، لكن السبب وراء استمرارها لمدة 30 عامًا هو:
- ما يستخدمه الإحصائيون فعليًّا (وليس «يُستخدم لمجرد استخدامه»)
- مؤلفو الحزم هم المستخدمون (عندما يواجهون مشكلة، يقومون بكتابة حزمة؛ وقد أصبح CRAN «قاعدة معرفية عملية»)
- أقيمت حواجز في الأوساط الأكاديمية (تشترط المجلات تقديم كود R قابل للتكرار)
6. تثبيت R (البرنامج الرئيسي R 4.x)
برنامج R مفتوح المصدر ومجاني؛ يمكنك تنزيل حزمة التثبيت من موقع CRAN.
(1) تعليمات التثبيت لكل نظام تشغيل
| المنصة | طريقة التثبيت | ملاحظات |
|---|---|---|
| ويندوز | قم بتنزيل R-4.x.x-win.exe، ثم انقر نقرًا مزدوجًا عليه وانقر على «التالي» خلال معالج التثبيت |
حدد الإصدار المطابق لنظامك ذي 64 بت |
| macOS Apple Silicon | تنزيل R-4.x.x-arm64.pkg |
شرائح M1/M2/M3 |
| macOS Intel | تنزيل R-4.x.x-x86_64.pkg |
أجهزة Mac القديمة |
| لينكس (أوبونتو/ديبيان) | عبر مستودع CRAN apt install |
انظر الأمر أدناه |
| لينكس (فيدورا/سنتوس) | عبر مستودع EPEL dnf install |
انظر الوثائق الرسمية لـ CRAN |
(2) أوامر تثبيت نظام لينكس
# Ubuntu/Debian User:Execute the following commands one by one in the terminal
sudo apt update -qq
sudo apt install --no-install-recommends software-properties-common dirmngr
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt install -y r-base
(3) التحقق من التثبيت
بمجرد اكتمال التثبيت، افتح محطة النظام وأدخل:
R --version
النتيجة المتوقعة:
R version 4.4.1 (2024-06-14) -- "Race for Your Life"
Copyright (C) 2024 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu
إذا رأيت رقم إصدار R، فهذا يعني أن البرنامج الرئيسي قد تم تثبيته بنجاح.
R (بالحروف الكبيرة) في المحطة الطرفية للدخول إلى بيئة REPL التفاعلية لـ R؛ واكتب q() للخروج من R. في نظام ويندوز، يمكنك أيضًا فتح R من «قائمة ابدأ → R».
7. تثبيت RStudio (بيئة تطوير متكاملة موصى بها)
يأتي برنامج R مزودًا بواجهة مستخدم رسومية أساسية، لكن 99% من مستخدمي R يستخدمون RStudio — وهو بيئة تطوير متكاملة (IDE) مخصصة لـ R طورتها شركة Posit, Inc.، وتُعد الأداة القياسية لمستخدمي R في جميع أنحاء العالم.
(1) تنزيل RStudio
تفضل بزيارة الموقع الرسمي لـ Posit لتنزيل النسخة المجانية من RStudio Desktop (متوفرة لأنظمة التشغيل Windows و macOS و Linux؛ حجمها حوالي 200 ميغابايت).
(2) عرض RStudio بأربعة أجزاء
عندما تفتح RStudio للمرة الأولى، سترى أربعة أجزاء:
graph TB
A["Source Editor<br/>Source Editor<br/>Write R Scripts and Documentation"]
B["Console<br/>Console<br/>Execute Code,Display Results"]
C["Environment/History<br/>Environment/History<br/>View Variables,Historical Commands"]
D["Documents/Charts/Packages/Help<br/>Files/Plots/Packages/Help"]
A -- "Ctrl+Enter<br/>Run the selected row" --> B
B -- "Assignment Generation" --> C
B -- "plot Drawing" --> D
C -- "Click on the variable name to view" --> D
style A fill:#fff3cd
style B fill:#d4edda
style C fill:#cce5ff
style D fill:#f8d7da
(3) قائمة من أربعة أعمدة
| اللوحة | الموقع | الغرض الرئيسي |
|---|---|---|
| محرر المصدر | أعلى اليسار | كتابة .R البرامج النصية و.Rmd المستندات؛ Ctrl+Enter إرسالها إلى وحدة التحكم |
| وحدة التحكم | أسفل اليسار | تنفيذ تعليمات لغة R تفاعليًّا؛ وعرض النتائج ورسائل الخطأ |
| البيئة/السجل | أعلى اليمين | يسرد جميع المتغيرات الحالية (إطارات البيانات، الدوال، إلخ)؛ سجل الأوامر |
| الملفات/الرسوم البيانية/الحزم/المساعدة | أسفل اليمين | تصفح الملفات، وعرض نتائج الرسوم البيانية، وتثبيت/تحميل الحزم، والاطلاع على مساعدة الدوال |
Tools → Global Options → General → Appearance لتغيير مظهر بيئة التطوير المتكاملة (مثل المظهر الداكن «Tomorrow Night Blue»). ومع ذلك، من المفيد إبقاء القائمة باللغة الإنجليزية حتى تتمكن من العثور على إجابات عند البحث عن رسائل الخطأ.
8. أول برنامج نصي بلغة R
الآن دعونا نكتب أول برنامج نصي لنا بلغة R. مسار العمل الكامل هو كما يلي:
▶ مثال: «Hello World» + حسابات بسيطة
# ============================================
# My First R Screenplay
# File Name:hello.R
# ============================================
# 1. Comments are marked with # Introduction,Will not be executed
# 2. Used for variable assignment <-
name <- "World"
# 3. Use cat() Output (cat = concatenate, join)
cat("Hello,", name, "!\n")
# 4. R It's a calculator.(Enter the expression directly)
1 + 1
2 * 3
sqrt(144) # Square Root = 12
log(100) # Natural Logarithm
# 5. Performing Calculations Using Variables
pi_value <- 3.14159
radius <- 5
area <- pi_value * radius ^ 2
cat("The radius is", radius, "The area of the circle is approximately equal to", round(area, 2), "\n")
النتيجة المتوقعة:
Hello, World !
[1] 2
[1] 6
[1] 12
[1] 4.60517
The radius is 5 The area of the circle is approximately equal to 78.54
(1) الإجراء
| الخطوة | الإجراء | الوصف |
|---|---|---|
| 1 | في RStudio، اضغط على Ctrl+Shift+N |
إنشاء برنامج نصي جديد بلغة R |
| 2 | أدخل الرمز أعلاه | انسخ الرمز بالكامل والصقه |
| 3 | Ctrl+S حفظ باسم hello.R |
حدد مجلدًا |
| 4 | تحديد كل الكود | Ctrl+A |
| 5 | Ctrl+Enter |
إرسال إلى وحدة التحكم للتشغيل |
| 6 | عرض النتيجة في وحدة التحكم | انظر "Hello, World!" |
cat() أكثر مرونة من print() ويسمح لك بضم عدة معلمات معًا؛ \n يمثل فاصل أسطر؛ <- هو عامل التعيين في لغة R (علامة «أصغر من» + واصلة)، وسنتناول ذلك بمزيد من التفصيل في الدرس التالي.
9. منظومة حزم R
تكمن أكبر قوة لـ R في منظومة الحزم الخاصة بها — التي تضم أكثر من 20,000 حزمة مفتوحة المصدر ساهم بها إحصائيون من جميع أنحاء العالم، وتغطي عمليًا جميع الأساليب الإحصائية وسيناريوهات علم البيانات.
(1) العناصر الأساسية الثلاثة لإدارة الحزم
# 1. Installation Package (Download from CRAN Mirror, Just do it once)
install.packages("dplyr")
# 2. Load Package(It must be loaded once for each new session.)
library(dplyr)
# 3. View Installed Packages
installed.packages()[, "Package"]
(2) tidyverse: «المجموعة المكونة من خمسة عناصر» لعلم البيانات في لغة R
tidyverse هي مجموعة من الحزم «tidy» التي يقودها هادلي ويكهام (مؤلف ggplot2)، وتُعد المعيار الفعلي لعلم البيانات الحديث باستخدام لغة R:
| الحزمة | الغرض | الوظائف النموذجية |
|---|---|---|
| dplyr | معالجة البيانات | filter() mutate() group_by() summarise() |
| ggplot2 | رسومات بجودة النشر | ggplot() geom_point() geom_bar() |
| readr | قراءة/كتابة ملفات CSV/TSV | read_csv() write_csv() |
| tidyr | إعادة تشكيل البيانات | pivot_longer() pivot_wider() |
| stringr | معالجة السلاسل | str_detect() str_replace() |
# One-time installation 8 A core package(dplyr/ggplot2/readr/tidyr/stringr/purrr/tibble/readxl)
install.packages("tidyverse")
❓ أسئلة شائعة
Tools → Global Options → Packages → CRAN mirror، قم بالتبديل إلى مرآة صينية (مثل Tsinghua https://mirrors.tuna.tsinghua.edu.cn/CRAN/)؛ فهذا سيجعل العملية أسرع بعشر مرات. كما يجب على مستخدمي Linux اختيار مرآة صينية عند تكوين مستودع apt.📖 ملخص
- R هي لغة للحساب الإحصائي والرسومات تم إنشاؤها في عام 1993، وتُعرف بأنها «منضدة عمل الإحصائي + فرشاة رسام البيانات + المعيار للبحوث القابلة للتكرار».
- الاختلافات الرئيسية بين لغتي R وPython: تُستخدم لغة R في مجالات الإحصاء والأوساط الأكاديمية والتصور البياني، بينما تُستخدم لغة Python في مجالات الهندسة والذكاء الاصطناعي والتطوير للأغراض العامة
- ترتيب التثبيت: قم أولاً بتثبيت البرنامج الرئيسي لـ R (الذي تم تنزيله من CRAN)، ثم قم بتثبيت بيئة تطوير التطبيقات RStudio (من موقع Posit الإلكتروني)
- تخطيط RStudio ذو الأربعة أجزاء: محرر المصدر (أعلى اليسار) → وحدة التحكم (أسفل اليسار) → البيئة/السجل (أعلى اليمين) → الملفات/الرسوم البيانية/الحزم/المساعدة (أسفل اليمين)
- البرنامج النصي الأول:
<-التعيين +cat()الناتج + تعليق يبدأ بـ# - تشكل مجموعة «tidyverse» المكونة من خمس مكونات (dplyr/ggplot2/readr/tidyr/stringr) جوهر لغة R في مجال علم البيانات
📝 تمارين
-
تمرين أساسي: قم بزيارة موقع CRAN، وابحث عن أحدث حزمة تثبيت لبرنامج R تناسب نظام التشغيل الخاص بك، وقم بتدوين رقم الإصدار الحالي. قم بتثبيت برنامج R وبرنامج RStudio، ثم التقط لقطة شاشة لواجهة RStudio المكونة من أربعة أجزاء واحفظها.
-
تمرين متقدم: أنشئ برنامجًا نصيًّا جديدًا في RStudio واكتب برنامج «تقديم الذات»: ① حدد 3 متغيرات (الاسم
name، العمرage، المدينةcity)؛ ② استخدمcat()لتكوين جملة وإخراج «اسمي [Name]، عمري [Age] سنة، وأنا من [City]»؛ ③ استخدم#لكتابة 2–3 أسطر من التعليقات لشرح الكود. بعد تشغيل البرنامج النصي، التقط لقطة شاشة واحفظ إخراج وحدة التحكم. -
التحدي: ابحث عن حزمة R واحدة تثير اهتمامك أكثر من غيرها (يُوصى بـ: ggplot2 / dplyr / shiny / rmarkdown / forecast)، واكتب فقرة (حوالي 200 حرف) تصف الغرض منها، وحالات الاستخدام النموذجية، ومثالاً من الواقع (يمكنك العثور عليه على موقع RStudio أو CRAN Task Views). احفظ نتائج بحثك في مستند.



