English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

القواعد الأساسية بلغة R

آموزش یک زبان جدید معمولاً با اجرای برنامه "Hello, World!" آغاز می‌شود، کد برنامه "Hello, World!" زبان R به شرح زیر است:

myString <- "Hello, World!"
print ( myString )

مثال بالا شامل تخصیص رشته "Hello, World!" به متغیر myString است و سپس از تابع print() برای چاپ آن استفاده می‌شود.

ملاحظة:زبان R از علامت <- برای تخصیص استفاده می‌کند، اما نسخه‌های جدید نیز از علامت برابر = پشتیبانی می‌کنند: =.

متغیر

نام متغیرهای معتبر زبان R از حروف، اعداد و نقطه . یا زیرخط _ تشکیل شده‌اند.

نام متغیرها با حرف یا نقطه شروع می‌شود.

نام متغیرآیا درست است؟دلیل
var_name2.درستشروع با کاراکتر، و شامل حروف، اعداد، زیرخط و نقطه است
var_name%اشتباه% کاراکتر غیرقانونی است
2var_nameاشتباهنام متغیرها نمی‌تواند با数字 شروع شود

.var_name,

var.name

درستمی‌توان با استفاده از نقطه . شروع کرد، اما باید توجه داشت که نقطه پس از آن نمی‌تواند با数字 شروع شود
.2var_nameاشتباه. نمی‌تواند پس از数字 شروع شود
_var_nameاشتباهنام متغیرها نمی‌تواند با زیرخط _ شروع شود

تخصیص متغیر

تخصیص در نسخه‌های جدید زبان R می‌توان با استفاده از <-، = و -> انجام شود:

# استفاده از علامت برابر = برای تخصیص
> var.1 = c(0,1,2,3)           
> print(var.1)
[1] 0 1 2 3
# استفاده از نقطه به علامت <- برای تخصیص
> var.2 <- c("learn","R")   
> print(var.2)
[1] "learn" "R"
    
# استفاده از نقطه به علامت <- برای تخصیص
> c(TRUE,1) -> var.3
> print(var.3)
[1] 1 1

برای مشاهده متغیرهای تعریف شده می‌توان از ls() توابع:

> print(ls())
[1] "var.1" "var.2" "var.3"

برای حذف متغیرها می‌توان از rm() توابع:

> rm(var.3)
> print(ls())
[1] "var.1" "var.2"
>

در فصل قبلی یاد گرفتیم که چگونه محیط برنامه‌نویسی R را نصب کنیم، در ادامه به شما معرفی خواهیم کرد برنامه‌نویسی تعاملی و اسکریپت‌های فایل R زبان.

برنامه‌نویسی تعاملی

تنها کافی است دستور R را در خط فرمان اجرا کنیم تا به پنجره برنامه‌نویسی تعاملی دسترسی پیدا کنیم:

R

بعد از اجرای این دستور، تفسیرگر زبان R باز می‌شود، ما می‌توانیم کد را پس از > وارد کنیم.

يمكنك الخروج من أوامر التفاعلية عن طريق إدخال q().

> q()
هل تريد حفظ صورة بيئة العمل؟ [y/n/c]: y

سطر الملف

يكون امتداد ملفات لغة R هو .R.

الآن سنقوم بإنشاء ملف w3codebox-test.R كما يلي:

ملف w3codebox-test.R

myString <- "w3codebox"
print ( myString )

الآن سنقوم بتنفيذ هذا السكربت باستخدام Rscript في نافذة السطر:

Rscript w3codebox-test.R

النتائج الإخراجية كالتالي:

[1] "w3codebox"

إدخال وإخراج

إخراج دالة print

دالة print هي دالة إخراج لغة R.

تمثل لغة R، مثل لغات البرمجة الأخرى، الأرقام والكarakterيات في الإخراج.

بسيطة جدًا هي جملة الإخراج:

print("w3codebox")
print(123)
print(3e2)

نتيجة التنفيذ:

[1] "w3codebox"
[1] 123
[1] 300

تمثل لغة R، مثل node.js وPython، لغة تفسيرية، لذا يمكننا استخدام لغة R كما لو كانت سطر أوامر.

إذا كنت تدخل قيمة في سطر واحد، فإن R سيزيدنها تلقائيًا إلى قيمة معيارة:

> 5e-2
[1] 0.05

دالة cat()

إذا كنت بحاجة إلى توصيل النتائج، يمكننا استخدام دالة cat():

> cat(1, "+", 1, "=", 2, '\n')
1 + 1 = 2

تضيف دالة cat مساحة بيضاء تلقائيًا بين كل عنصرين متصلين.

إخراج المحتوى إلى الملف

يوجد العديد من طرق إخراج النتائج إلى الملف في لغة R، وهي سهلة جدًا.

يدعم دالة cat إخراج النتائج مباشرة إلى الملف:

cat("w3codebox", file="/Users/w3codebox/w3codebox-test/r_test.txt")

هذه الجملة لن تنتج أي شيء في الشاشة، بل ستقوم بطباعة "w3codebox" إلى ملف "/Users/w3codebox/w3codebox-test/r_test.txt".

يمكن أن يكون معامل file مسارًا مطلقًا أو مسارًا مطلقًا، يُنصح باستخدام المسار المطلق، صيغة مسار Windows هي D:\\r_test.txt.

cat("w3codebox", file="D:\\r_test.txt")

الرجاء الانتباه: هذه العملية هي "إكمال الكتابة"، استخدمها بحذر لأنها ستقوم بإزالة بيانات ملف الناتج الأصلي. إذا كنت ترغب في "إضافة الكتابة"، لا تنسى تعيين معامل append:

cat("GOOGLE", file="/Users/w3codebox/w3codebox-test/r_test.txt", append=TRUE)

بعد تنفيذ الكود أعلاه، افتح محتوى ملف r_test.txt كما يلي:

w3codeboxGOOGLE

sink()

يمكن أن يرسل دالة sink النصوص التي يتم إخراجها من الشاشة مباشرة إلى الملف:

sink("/Users/w3codebox/w3codebox-test/r_test.txt")

بعد تنفيذ هذه الجملة، سيتم كتابة أي إخراج على الشاشة إلى ملف "/Users/w3codebox/w3codebox-test/r_test.txt"، وسيتم عدم عرض الإخراج على الشاشة.

ملاحظة: هذه العملية هي أيضًا عملية "إعادة الكتابة"، وسيتضمن القضاء على محتوى الملف القديم.

إذا كنت ترغب في الحفاظ على إخراج الشاشة، يمكنك تعيين خاصية split:

sink("/Users/w3codebox/w3codebox-test/r_test.txt", split=TRUE)

إذا كنت ترغب في إلغاء إخراج إلى الملف، يمكنك تفعيل sink بدون أي معلمات:

sink()
sink("r_test.txt", split=TRUE) # يتم إخراج إلى الشاشة أيضًا
for (i in 1:5) 
    print(i)
sink() # إلغاء إخراج إلى الملف
sink("r_test.txt", append=TRUE) # لا يتم إخراج إلى الشاشة، ولكن يتم إضافة الكتابة إلى الملف
print("w3codebox")

باستخدام الكود أعلاه، سيتم إنشاء ملف r_test.txt في الدليل الحالي، افتح محتوى الملف كما يلي:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] "w3codebox"

الإخراج على الشاشة هي:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

إدخال النص

ربما ن联动 C لغة البرمجة scanf أو java.util.Scanner في Java، إذا كنت قد درست Python فإنك قد تكون أكثر مألوفية بـ input() دالة. ولكن لغة R نفسها كغة تفسرية، تشبه بعض لغات الأوامر السريعة (مثل bash أو PowerShell)، هذه اللغات تعتمد على نظام الأوامر، وتحتاج إلى إدخال وخرج وقد لا تكون مناسبة لتطوير تطبيقات موجهة للمستخدمين (بما أنهم أنفسهم موجهون للمستخدمين النهائيين). لذلك لا تحتوي لغة R على دالة مخصصة لقراءة من الشاشة، ودائمًا ما يتم إدخال النصوص في استخدام R.

قراءة النص من الملف

تتوفر العديد من وظائف قراءة الملفات بلغة R، ولكن إذا كنت ترغب في قراءة محتويات ملف معين كنص، يمكنك استخدام وظيفة readLines:

readLines("/Users/w3codebox/w3codebox-test/r_test.txt")

نتيجة التنفيذ:

[1] "w3codeboxGOOGLE"

النتيجة هي سلسلتين، هما السطرين اللذين يحتويهما الملف المقرأ.

ملاحظة:يجب أن يكون نهاية كل سطر من النصوص المقرأ (بما في ذلك السطر الأخير) يحتوي على إشارة النهاية للسطر، وإلا سيتم إصدار خطأ.

طرق أخرى

بالإضافة إلى المدخلات والمدخلات البسيطة للنصوص، توفر بلغة R العديد من طرق المدخلات والمدخلات للبيانات، حيث يمكن لغة R حفظ بنية البيانات مباشرة إلى الملفات، وتقوم بتشغيلها كـ CSV، جدول Excel، ودعم القراءة المباشرة. هذا أمر مفيد للغاية للمحققين matematicians. ولكن لا تؤثر هذه الميزات بشكل كبير على تعلم لغة R، وسنذكرها في الفصول القادمة.

دليل العمل

للعمل على ملفات، يجب تعيين مسار الملف، يمكن بلغة R الحصول على وتعيين الدليل الحالي للعمل من خلال سطرين كما يلي:

  • getwd() : الحصول على الدليل الحالي للعمل

  • setwd() : تعيين الدليل الحالي للعمل

# الدليل الحالي للعمل
print(getwd())
# تعيين الدليل الحالي للعمل
setwd("/Users/w3codebox/w3codebox-test2")
# مشاهدة الدليل الحالي للعمل
print(getwd())

النتيجة التي يتم إخراجها من تنفيذ الكود أعلاه هي:

[1] "/Users/w3codebox/w3codebox-test"
[1] "/Users/tianqixin/w3codebox-test2"