السلام عليكم ورحمة الله وبركاته،
في هذه السلسة من الدروس سنحاول إن شاء الله تقديم لغة البرمجة وبيئة التطوير R والتعريف بإمكانياتها في مجال الحوسبة الإحصائية وذلك بشكل موجز ومبسط قدر الإمكان.
رخصة هذا الشرح: رخصة "وقف" العامة

لقطة شاشة لبيئة عمل R على منصة يونكس.
ملاحظة:
لن أسعى هنا لتعريف المفاهيم الأساسية أو المتقدمة في علم الإحصاء، أولاً لأن طبيعة المنتدى لا تسمح بذلك، وثانياً لأن هناك مراجع كثيرة ودروس تفيض في هذا الموضوع على مواقع كثيرة. لذلك سأفترض بأن المهتم بهذا الشرح سيكون على إلمام ولو بسيط بماهية مصطلحات إحصائية مثل: متغير، عينة، ارتباط، معدل، رسم بياني، ... حسنًا دعنا نتوقف هنا قبل أن يلوذ من بقي منكم بالفرار !
عموما لا تخف أعدك أنك لن ترى أشياء مثل هذه:
أثناء الشرح
.
ماذا نعني أولا بالحوسبة الإحصائية ؟
لعل أهمية علم الإحصاء في مختلف مجالات الحياة لا تخفى على أحد بالرغم من السمعة السيئة التي اكتسبها هذا العلم كأداة للكذب وتحريف الحقائق (خصوصا إذا وقع استعماله استعمالا خاطئا في عالم السياسة والصحافة). ولكن بعيدا عن هذا وذاك، علم الإحصاء يبقى من أقوى الأدوات التي لا يمكن الاستغناء عنها في عدة مجالات من العلوم والهندسة والاقتصاد.
ومع التطور الهائل التي عرفته قوة الحوسبة "computing power" منذ نصف القرن الأخير، صار بالإمكان إجراء عدد من العمليات الحسابية المعقدة بإمكانيات لا تتجاوز أحيانا ما يوفرها حاسوب شخصي. وقد أتاح هذا الأمر إمكانية إجراء الدراسات الإحصائية وتحليل المعلومات بتكاليف ومدة زمنية معقولة. وفي هذا الإطار يشير مصطلح الحوسبة الإحصائية "Computational statistics" إلى فضاء رحب من الطرق والأساليب التي تشترك فيها مهارات متعددة من علم الإحصاء وعلم الحواسيب "Computer science" والتعلم الآلي "Machine learning" لحل المشاكل وتحليل الظواهر الطبيعية أو الاجتماعية.

بعض الإختصاصات المتعلقة بالحوسبة الإحصائية
أين نقوم باستعمال الحوسبة الإحصائية؟ ولماذا؟
في عدة مجالات من الحياة غالبا ما نبحث عن التقدير الأشياء بلغة الأرقام والإحصائيات، وذلك للوقوف على حقيقتها أو لاتخاذ القرارات المناسبة حيالها. ويضفي استعمال الحاسوب كأداة للقيام بالحسابات الإحصائية وتمثيل البيانات عدة ميزات لم تتوفر لأجدادنا (الذين كانوا على دراية تامة بعلم الإحصاء) مثل الأتمتة "Automation"، والموثوقية، والسرعة.
على الحواسيب القديمة (الضخمة، والمعقدة، وكثيرة العطب) كان المبرمجون يعملون أياما لإدخال "الكود" والبيانات بواسطة البطاقات المثقبة أو المفاتيح (لأنها لا تفهم سوى 1 أو 0) في حين تدوم مدّة الإحتساب الفعلية بضع ثوان.
ليس من الممكن تحديد كل المجالات، لكثرتها، التي تعتمد على التحليل الحاسوبي للبيانات، ولكن سنقدم بعض الأمثلة للتوضيح:
بعض من مجالات عمل الحوسبة الإحصائية.
2- تعتمد دراسة الجينوم (مجموع المورثات) على تحليل بنية ألاف الجينات، ومقارنتها، وتصنيفها، وإيجاد طريقة عملها المعقدة في إطار شبكات (Gene regulatory network). وقد يمكن هذا الأمر في المستقبل من السيطرة على أمراض مستعصية مثل السرطان.
3- تطوير نوع جديد من العقارات يعتمد على دراسات إحصائية تأكد مدى فاعليتها أو تأثيراتها الجانبية. وهذا جانب حيوي في عمل شركات الأدوية.
4- عالم الاقتصاد والأعمال يعتمد على التحليل الإحصائي السريع لعدة مؤشرات مثل الاستهلاك (العرض والطلب)، واحتساب نسب الأرباح، وتوقعات الأسواق المالية، ...
ماذا عن علاقة كل هذا بتكنولوجيا المعلومات "IT" (محل اهتمامنا في هذا المنتدى) ؟
الحوسبة الإحصائية هي جزء أساسي من نمذجة الحمل على الشبكات "Network load"، تدفق المعلومات، أنماط البحث، تطوير المواقع، وهناك المزيد طبعا ...
ما هي لغة R؟
كانت بداية R أكثر من عادية عندما حاول "Ross Ihaka" (من جامعة أوكلاند بنيوزيلاندا) إعادة كتابة بعض الدوال الإحصائية بلغة S بواسطة اسكيم "Scheme"
. ولغة S هذه هي أولى اللغات المختصة بالحوسبة الإحصائية التي وقع تطويرها في مختبرات "AT&T" في سبعينات القرن الماضي كبديل لفورتران. و في البداية كانت مختبرات "AT&T" تقوم بتوزيع مصدر لغة S (كما كانت تفعل مع النسخ الأولى لنظام يونكس)، قبل أن تغير رخصته إلى تجاري ومغلق سنة 1984. وعندما عرض "Ross Ihaka" على زميله "Robert Gentleman" نتائج محاولاته، قرر الاثنان إعادة كتابة "Implementation" مصدر S بالكامل بواسطة فرتران وسي. ونشرت أول نسخة حاملة الحرف الأول من اسميهما (R) تحت بنود رخصة غنو الحرّة سنة1997. وبوتيرة تطوير متسارعة صار المشروع ناضجا منذ سنة 2000، وهو الآن من الشهرة في الأوساط الأكاديمية، بحيث أنه تجاوز بمراحل إمكانيات لغة S ولغات أخرى مختصة بهذا المجال.

"GNU R" أو المعروفة اختصارًا ب R هي لغة وبيئة تطوير (Language and development environment) متخصصة في تحليل وتمثيل البيانات والحوسبة الإحصائية. وتتكون R من حزمة رئيسية "core" يمكن توسيعها بواسطة حزم أخرى موجودة بمستودعات المشروع الرئيسي "CRAN". يبلغ عدد هذه الحزم لحد الآن 2456. وهي تقدم مكتبات للطرق الإحصائية الأساسية والمقدمة كالإحصاء الوصفي، والاختبارات الإحصائية، وتخطيط التجارب، وتحليل الارتباطات الخطية، واللاخطية، وتحليل المتتاليات الزمنية، والتحليل متعدد المتغيرات، وتحليل الإشارات، ... وبقية القائمة المفصّلة ستجدها هنا.
في السنوات العشر الأخيرة، تجاوزت R الدوائر الأكاديمية إلى قطاعات تكنولوجية متعددة حيث تقوم باستعمالها شركات كبرى بما في ذلك غوغل ومايكروسوفت وموقع فايسبوك (لتحليل البيانات الشخصية). ثم إن شركات أدوية عالمية (AstraZeneca ،Pfizer،Johnson & Johnson ، …) تعتمده لتحليل البيانات السريرية.
للمزيد من المعلومات تفضل بزيارة موقع مشروع R.
ما هي مميزات R؟
- مجانية، مفتوحة المصدر، ومتاحة للجميع.
- متعددة المنصات يعمل على أنظمة لينوكس ويونكس وماك وويندوز.
- مختصة في التحليل الإحصائي وبنائها "syntax " سهل ملائم جدا لهذه الغاية، مثلا لحساب المجموع والمعدل والتباين. أستعمل أوامر بديهية مثل:
- لغة مفسرة ولغة لكتابة السكربتات مثل بايثون.
- ذات أداء عال وقابلة للموازاة (Parallel computing) وهو أمر هام لعمليات حوسبة معقدة مثل نمذجة ومحاكاة المناخ والنظم الأحيائية، ...
-التمثيل بياني ذو جودة عالية مع إمكانية إنتاج مخططات ثلاثية الأبعاد باستعمال مكتبة "OpenGL".
ستجد هنا بعض الأمثلة.
-نظام وثائق ودعم محكم ومتنوع.
ماهي حدود R؟
طبعا لنكون واقعيين لكل لغة برمجة حدود، فمن الواضح أنك لن تستطيع مثلا عمل لعبة ثلاثية الأبعاد بواسطة R
كما أنك لن تستطيع حل كل المشاكل الرياضية وتحليل جميع أنواع البيانات.
- لتحليل الأطياف والإشارات (Signal processing) ومحاكاة النظم الإلكترونية سيكون من الأفضل استعمال لغات الحوسبة العددية مثل متلاب (التجارية) أو بديل مفتوح المصدر مثل أوكتاف " Octave" أو سيلاب "Scilab ".
-بما أنها لغة مفسرة، ستكون R أبطأ في بعض البرامج الضخمة وذات البنية معقدة. في هذه الحالة، إذا كانت السّرعة أمرا حيويًا، يتجه الكثيرون نحو لغات مصرّفة "Compiled" مثل "SAS" أو فورتران.
- قد تكون ذاكرة R غير مهيأة لتعامل مع بيانات ذات سعة فائقة لأنها تقوم بتحميل كافة البيانات والمكتبات في الذاكرة الحيّة (وإن كان هناك تحسينات منذ الإصدار. 2). الحلّ المتوفر هو إنشاء قاعدة بيانات خارجية وربطها ب R (باستعمال MySQL، أو PostgreSQL، أو غيرها).
تثبيت واستعمال R على لينكس
هناك إصداران من R كل سنة، في أبريل وأكتوبر. سنستخدم الإصدار الأحدث في هذا الشرح وهو 2.11. الحزم التنفيذية "Binaries" متاحة للتحميل من الموقع الرئيسي، وكذلك تثبيتها من مدير حزم مباشرة متاح لأغلب التوزيعات.
نسخة R للينكس تتفوق على نفس النسخة لويندوز في استخدام الموارد، خاصة في استهلاك الذاكرة الحيّة. كما يمكن تثبيت R من المصدر على لينوكس لجعلها أعلى في الأداء.
افتح الطرفية، وتأكد من أنك تحمل صلاحيات الجذر، ثم أكتب أوامر التثبيت:
- على دبيان وأوبنتو وسبيلي ومينت:
- على فيدورا وأعجوبة لينكس:
- على مندريفا:
- على أوبن سيوز:
للتعليمات الخاصة بالتثبيت من المصدر أنظر هنا.
تستطيع العمل على بيئة R بشكل أساسي بواسطة سطر الأوامر كما أن هناك واجهات رسومية عديدة (سنرى بعضها لاحقا). من الممكن أيضا دمجها مع تطبيقات أخرى كالمتصفحات (بواسطة "rapache") والجداول الممتدة "spreadsheets" أو جعلها تعمل كخادم (بواسطة "Rserve").
لفتح جلسة R جديدة، أكتب في الطرفية:
إذا كان كل شيء على ما يرام سترى رسالة ترحيب كالتالي (إذا لم ترى شيئا أصرخ بأعلى صوتك
)

فتح R على الطرفية (الواجهة النصيّة).
والعلامة التنصيص ">" هي استدعاء لنا لبداية إدخال الأوامر، مثلا لندخل عملية بسيطة:
والمخرجة ستكون:
للخروج من الجلسة أكتب
سيطلب منك إن كنت تريد حفظ بيانات الجلسة الحالية أم لا (y/n) فاختر ما تراه مناسباً.
هذه الطريقة، التي لا تعتبر غريبة على من يتعامل مع "بيثون" و"روبي" ، تسمى " Console mode ".
يمكنك أيضا عمل سكربتات بلغة R وتنفيذها عن طريق " Batch mode " وكتجربة افتح محرر النصوص لديك ثم أنقل وألصق التالي:
إحفظ الملف بامتداد " .R" ثم لرؤية النتيجة أكتب في الطرفية:
لنبدأ ! Getting Started
في البداية ستستعمل R كآلة حاسبة. جرب أشياء كالتالي:
لاحظ هنا أمرين:
أولاً، أجريت العملية الحسابية ولكن وقع تجاهل كل ماهو مكتوب بعد العلامة "#" لأنه يعتبر تعليقا. كتابة التعليقات مهمة جداً في أي لغة برمجة لأنك قد تكون أول من سينسى طريقة عمل الكود بعد أشهر من كتابته.
ثانيًا، طبعت قبل النتيجة العلامة "[1]" وهذا لأن R يعتبر افتراضيا كل شيء بمثابة جدول "vector" والرقم واحد هو مؤشر عن العنصر الأول في الجدول.
تستطيع أيضا استعمال بعض الدوال الرياضية، مثلا:
يمكن تخزين المتغيرات باسم معين:
كما ترى R ليس كثير الكلام
، لو أردت أن تطبع قيمة المتغير (ما تحتويه x هنا) :
لإنشاء الجداول:
كمثال بسيط سنقوم برسم منحنى دالة الجيب كالآتي:
والنتيجة ستكون:
الرسم البياني لدالة الجيب.
كما ترى من المثال السابق، الدوال"functions"فيR تأتي على الشكل التالي:
هناك العديد من الملقمات "arguments " في الدالة ()plot، بعضها أساسي والآخر اختياري. قمنا هنا بتحديد أربعة منها فقط.
في الأول والثاني قمنا بتحديد البيانات v و u التي سنقوم بتمثيلها في المنحنى (أساسي).
في الثالث والرابع قمنا اختياريا بتحديد نوع المنحنى"type=" ولونه "col="، وإن كان من الممكن تركهما دون تحديد.
يمكنك أن تطلب المساعدة لمعرفة طريقة استعمال أي دالة كالتالي:
لتصفح المساعدة بشكل أفضل على متصفح الويب (على ثعلب النار مثلا
)، قم فقط بتغيير الخيارات كالآتي:

ويمكن أيضا استعراض كل الملقمات المتوفرة لدالة معينة بواسطة المفتاح "tab"، تماما كما تعمل خاصية الإتمام الذاتي على الطرفية. على سبيل المثال:
أرجوا أن يكون هذا الشرح المتواضع قد أفادكم، وأرحب بكل الملاحظات والأسئلة.
ولي عودة إن شاء الله.
المصادر
Why Study Statistics Brochure
Statistics with R
Joseph Adler (2009), R in a Nutshell, Publisher: O'Reilly Media
Getting Started in R
في هذه السلسة من الدروس سنحاول إن شاء الله تقديم لغة البرمجة وبيئة التطوير R والتعريف بإمكانياتها في مجال الحوسبة الإحصائية وذلك بشكل موجز ومبسط قدر الإمكان.
رخصة هذا الشرح: رخصة "وقف" العامة

لقطة شاشة لبيئة عمل R على منصة يونكس.

لن أسعى هنا لتعريف المفاهيم الأساسية أو المتقدمة في علم الإحصاء، أولاً لأن طبيعة المنتدى لا تسمح بذلك، وثانياً لأن هناك مراجع كثيرة ودروس تفيض في هذا الموضوع على مواقع كثيرة. لذلك سأفترض بأن المهتم بهذا الشرح سيكون على إلمام ولو بسيط بماهية مصطلحات إحصائية مثل: متغير، عينة، ارتباط، معدل، رسم بياني، ... حسنًا دعنا نتوقف هنا قبل أن يلوذ من بقي منكم بالفرار !

عموما لا تخف أعدك أنك لن ترى أشياء مثل هذه:

ماذا نعني أولا بالحوسبة الإحصائية ؟
لعل أهمية علم الإحصاء في مختلف مجالات الحياة لا تخفى على أحد بالرغم من السمعة السيئة التي اكتسبها هذا العلم كأداة للكذب وتحريف الحقائق (خصوصا إذا وقع استعماله استعمالا خاطئا في عالم السياسة والصحافة). ولكن بعيدا عن هذا وذاك، علم الإحصاء يبقى من أقوى الأدوات التي لا يمكن الاستغناء عنها في عدة مجالات من العلوم والهندسة والاقتصاد.
ومع التطور الهائل التي عرفته قوة الحوسبة "computing power" منذ نصف القرن الأخير، صار بالإمكان إجراء عدد من العمليات الحسابية المعقدة بإمكانيات لا تتجاوز أحيانا ما يوفرها حاسوب شخصي. وقد أتاح هذا الأمر إمكانية إجراء الدراسات الإحصائية وتحليل المعلومات بتكاليف ومدة زمنية معقولة. وفي هذا الإطار يشير مصطلح الحوسبة الإحصائية "Computational statistics" إلى فضاء رحب من الطرق والأساليب التي تشترك فيها مهارات متعددة من علم الإحصاء وعلم الحواسيب "Computer science" والتعلم الآلي "Machine learning" لحل المشاكل وتحليل الظواهر الطبيعية أو الاجتماعية.

بعض الإختصاصات المتعلقة بالحوسبة الإحصائية
أين نقوم باستعمال الحوسبة الإحصائية؟ ولماذا؟
في عدة مجالات من الحياة غالبا ما نبحث عن التقدير الأشياء بلغة الأرقام والإحصائيات، وذلك للوقوف على حقيقتها أو لاتخاذ القرارات المناسبة حيالها. ويضفي استعمال الحاسوب كأداة للقيام بالحسابات الإحصائية وتمثيل البيانات عدة ميزات لم تتوفر لأجدادنا (الذين كانوا على دراية تامة بعلم الإحصاء) مثل الأتمتة "Automation"، والموثوقية، والسرعة.

ليس من الممكن تحديد كل المجالات، لكثرتها، التي تعتمد على التحليل الحاسوبي للبيانات، ولكن سنقدم بعض الأمثلة للتوضيح:

بعض من مجالات عمل الحوسبة الإحصائية.
1 – تقدير تأثير النشاط البشري على البيئة، كتوزيع الملوثات الصناعية في التربة، الهواء، والماء وتأثيرها على التوازنات الأحيائية وصحّة الإنسان يتم بنماذج عددية وإحصائية.
3- تطوير نوع جديد من العقارات يعتمد على دراسات إحصائية تأكد مدى فاعليتها أو تأثيراتها الجانبية. وهذا جانب حيوي في عمل شركات الأدوية.
4- عالم الاقتصاد والأعمال يعتمد على التحليل الإحصائي السريع لعدة مؤشرات مثل الاستهلاك (العرض والطلب)، واحتساب نسب الأرباح، وتوقعات الأسواق المالية، ...

الحوسبة الإحصائية هي جزء أساسي من نمذجة الحمل على الشبكات "Network load"، تدفق المعلومات، أنماط البحث، تطوير المواقع، وهناك المزيد طبعا ...
ما هي لغة R؟


"GNU R" أو المعروفة اختصارًا ب R هي لغة وبيئة تطوير (Language and development environment) متخصصة في تحليل وتمثيل البيانات والحوسبة الإحصائية. وتتكون R من حزمة رئيسية "core" يمكن توسيعها بواسطة حزم أخرى موجودة بمستودعات المشروع الرئيسي "CRAN". يبلغ عدد هذه الحزم لحد الآن 2456. وهي تقدم مكتبات للطرق الإحصائية الأساسية والمقدمة كالإحصاء الوصفي، والاختبارات الإحصائية، وتخطيط التجارب، وتحليل الارتباطات الخطية، واللاخطية، وتحليل المتتاليات الزمنية، والتحليل متعدد المتغيرات، وتحليل الإشارات، ... وبقية القائمة المفصّلة ستجدها هنا.
في السنوات العشر الأخيرة، تجاوزت R الدوائر الأكاديمية إلى قطاعات تكنولوجية متعددة حيث تقوم باستعمالها شركات كبرى بما في ذلك غوغل ومايكروسوفت وموقع فايسبوك (لتحليل البيانات الشخصية). ثم إن شركات أدوية عالمية (AstraZeneca ،Pfizer،Johnson & Johnson ، …) تعتمده لتحليل البيانات السريرية.
للمزيد من المعلومات تفضل بزيارة موقع مشروع R.
ما هي مميزات R؟
- مجانية، مفتوحة المصدر، ومتاحة للجميع.
- متعددة المنصات يعمل على أنظمة لينوكس ويونكس وماك وويندوز.
- مختصة في التحليل الإحصائي وبنائها "syntax " سهل ملائم جدا لهذه الغاية، مثلا لحساب المجموع والمعدل والتباين. أستعمل أوامر بديهية مثل:
mean, sum, var
-تعتمد فلسفة البساطة والحد الأدنى، أي أنها تعطيك المخرجات التي تحتاجها فقط وتتفادى تكديس النتائج كما تفعل برمجيات إحصائية أخرى ( كتقارير SPSS). - لغة مفسرة ولغة لكتابة السكربتات مثل بايثون.
- ذات أداء عال وقابلة للموازاة (Parallel computing) وهو أمر هام لعمليات حوسبة معقدة مثل نمذجة ومحاكاة المناخ والنظم الأحيائية، ...
-التمثيل بياني ذو جودة عالية مع إمكانية إنتاج مخططات ثلاثية الأبعاد باستعمال مكتبة "OpenGL".
ستجد هنا بعض الأمثلة.
-نظام وثائق ودعم محكم ومتنوع.
ماهي حدود R؟
طبعا لنكون واقعيين لكل لغة برمجة حدود، فمن الواضح أنك لن تستطيع مثلا عمل لعبة ثلاثية الأبعاد بواسطة R

- لتحليل الأطياف والإشارات (Signal processing) ومحاكاة النظم الإلكترونية سيكون من الأفضل استعمال لغات الحوسبة العددية مثل متلاب (التجارية) أو بديل مفتوح المصدر مثل أوكتاف " Octave" أو سيلاب "Scilab ".
-بما أنها لغة مفسرة، ستكون R أبطأ في بعض البرامج الضخمة وذات البنية معقدة. في هذه الحالة، إذا كانت السّرعة أمرا حيويًا، يتجه الكثيرون نحو لغات مصرّفة "Compiled" مثل "SAS" أو فورتران.
- قد تكون ذاكرة R غير مهيأة لتعامل مع بيانات ذات سعة فائقة لأنها تقوم بتحميل كافة البيانات والمكتبات في الذاكرة الحيّة (وإن كان هناك تحسينات منذ الإصدار. 2). الحلّ المتوفر هو إنشاء قاعدة بيانات خارجية وربطها ب R (باستعمال MySQL، أو PostgreSQL، أو غيرها).
تثبيت واستعمال R على لينكس
هناك إصداران من R كل سنة، في أبريل وأكتوبر. سنستخدم الإصدار الأحدث في هذا الشرح وهو 2.11. الحزم التنفيذية "Binaries" متاحة للتحميل من الموقع الرئيسي، وكذلك تثبيتها من مدير حزم مباشرة متاح لأغلب التوزيعات.

افتح الطرفية، وتأكد من أنك تحمل صلاحيات الجذر، ثم أكتب أوامر التثبيت:
- على دبيان وأوبنتو وسبيلي ومينت:
كود:
apt-get install r-base r-base-dev
- على فيدورا وأعجوبة لينكس:
كود:
yum install R R-devel
- على مندريفا:
كود:
urpmi R-base R-devel
- على أوبن سيوز:
كود:
zypper install R-base R-base-devel
للتعليمات الخاصة بالتثبيت من المصدر أنظر هنا.
تستطيع العمل على بيئة R بشكل أساسي بواسطة سطر الأوامر كما أن هناك واجهات رسومية عديدة (سنرى بعضها لاحقا). من الممكن أيضا دمجها مع تطبيقات أخرى كالمتصفحات (بواسطة "rapache") والجداول الممتدة "spreadsheets" أو جعلها تعمل كخادم (بواسطة "Rserve").
لفتح جلسة R جديدة، أكتب في الطرفية:
كود:
~$ R[FONT=Tahoma] [/FONT]
إذا كان كل شيء على ما يرام سترى رسالة ترحيب كالتالي (إذا لم ترى شيئا أصرخ بأعلى صوتك


فتح R على الطرفية (الواجهة النصيّة).
والعلامة التنصيص ">" هي استدعاء لنا لبداية إدخال الأوامر، مثلا لندخل عملية بسيطة:
كود PHP:
>7+28
والمخرجة ستكون:
كود PHP:
[1] 35
للخروج من الجلسة أكتب
كود PHP:
q()
سيطلب منك إن كنت تريد حفظ بيانات الجلسة الحالية أم لا (y/n) فاختر ما تراه مناسباً.
هذه الطريقة، التي لا تعتبر غريبة على من يتعامل مع "بيثون" و"روبي" ، تسمى " Console mode ".
يمكنك أيضا عمل سكربتات بلغة R وتنفيذها عن طريق " Batch mode " وكتجربة افتح محرر النصوص لديك ثم أنقل وألصق التالي:
كود PHP:
#!/usr/bin/env R
cat("Hello World!\n")
إحفظ الملف بامتداد " .R" ثم لرؤية النتيجة أكتب في الطرفية:
كود PHP:
~$ cat hello.R | R --slave
Hello World!
لنبدأ ! Getting Started
في البداية ستستعمل R كآلة حاسبة. جرب أشياء كالتالي:
كود PHP:
> 3+7-3# addition and subtraction
[1] 7
لاحظ هنا أمرين:
أولاً، أجريت العملية الحسابية ولكن وقع تجاهل كل ماهو مكتوب بعد العلامة "#" لأنه يعتبر تعليقا. كتابة التعليقات مهمة جداً في أي لغة برمجة لأنك قد تكون أول من سينسى طريقة عمل الكود بعد أشهر من كتابته.
ثانيًا، طبعت قبل النتيجة العلامة "[1]" وهذا لأن R يعتبر افتراضيا كل شيء بمثابة جدول "vector" والرقم واحد هو مؤشر عن العنصر الأول في الجدول.
كود PHP:
> 6-3+2
[1] 5
> 6-(3+2) # operation order
[1] 1
> 12*6+4# multiplication first
[1] 76
> 72/5 # division
[1] 14.4
> 6^2 # squaring
[1] 36
> 8^13 # to the power of
[1] 549755813888
> 8**13 # same thing
[1] 549755813888
> ((5*13)-(1+4)^2)/62 # more complicated
[1] 0.6451613
تستطيع أيضا استعمال بعض الدوال الرياضية، مثلا:
كود PHP:
> sqrt(2) # square root
[1] 76
> cos(pi) # cosine of pi, pi is the ‘π’ constant
[1] -1
> sin(20)^2+cos(20)^2
[1] 1
> log(1) # natural log
[1] 0
> log10(10) # decimal log
[1] 1
> exp(0) # exponential
[1] 1
يمكن تخزين المتغيرات باسم معين:
كود PHP:
> x<-5 # assigns 5 to x
>x=5 # equivalent but not recommended for scripts

كود PHP:
> x # print x’s value
[1] 5
> 2 -> y # same thing, assigns 2 to y
> y
[1] 2
> z<- x*y-x+y
[1] 7
لإنشاء الجداول:
كود PHP:
> v<-c(1,2,3,4) # create a vector with combine function “c()”
> v
[1] 1 2 3 4
> w<-c("Age","Gender","Length") # create a vector of strings
> w
[1] "Age" "Gender" "Length"
> v<-1:10 # create a vector with a sequence from 1 to 10
> v
[1] 1 2 3 4 5 6 7 8 9 10
> v<-seq(1,10) # same thing with “seq()” function
> v
[1] 1 2 3 4 5 6 7 8 9 10
> u<-sin(v) #calculate sin of v elements and assign them to a new vector u
> u # display u
[1] 0.8414710 0.9092974 0.1411200 -0.7568025 -0.9589243 -0.2794155
[7] 0.6569866 0.9893582 0.4121185 -0.5440211
كمثال بسيط سنقوم برسم منحنى دالة الجيب كالآتي:
كود PHP:
> v<-seq(-6,6,.2) # create a sequence from -6,6 with an increment of 0.2
> u<-sin(v)
> plot(v,u,type='l',col='red')# plot u=sin(v) with a red line ‘l’
والنتيجة ستكون:

الرسم البياني لدالة الجيب.
كما ترى من المثال السابق، الدوال"functions"فيR تأتي على الشكل التالي:
كود PHP:
function(arg1=…,arg2=…,…) # function with some arguments
هناك العديد من الملقمات "arguments " في الدالة ()plot، بعضها أساسي والآخر اختياري. قمنا هنا بتحديد أربعة منها فقط.
في الأول والثاني قمنا بتحديد البيانات v و u التي سنقوم بتمثيلها في المنحنى (أساسي).
في الثالث والرابع قمنا اختياريا بتحديد نوع المنحنى"type=" ولونه "col="، وإن كان من الممكن تركهما دون تحديد.
يمكنك أن تطلب المساعدة لمعرفة طريقة استعمال أي دالة كالتالي:
كود PHP:
> help(plot)# display help of plot function in console mode
> ?plot # same thing
لتصفح المساعدة بشكل أفضل على متصفح الويب (على ثعلب النار مثلا

كود PHP:
> options(help_type = "html", browser = "firefox")
> help(plot)

وثائق المساعدة على المتصفح موزيلا فايرفوكس.
ويمكن أيضا استعراض كل الملقمات المتوفرة لدالة معينة بواسطة المفتاح "tab"، تماما كما تعمل خاصية الإتمام الذاتي على الطرفية. على سبيل المثال:
كود PHP:
> plot()
topic= package= lib.loc= verbose=
try.all.packages= help_type=
...
أرجوا أن يكون هذا الشرح المتواضع قد أفادكم، وأرحب بكل الملاحظات والأسئلة.
ولي عودة إن شاء الله.
المصادر
Why Study Statistics Brochure
Statistics with R
Joseph Adler (2009), R in a Nutshell, Publisher: O'Reilly Media
Getting Started in R
تعليق