معلومة

3: البرمجة في R - Biology

3: البرمجة في R - Biology


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

لغة R متخصصة في تحليل البيانات الإحصائية ، وهي أيضًا مفيدة جدًا لتصور مجموعات البيانات الكبيرة. يغطي هذا الجزء الثالث أساسيات R كلغة برمجة (أنواع البيانات ، عبارات if ، الوظائف ، الحلقات ومتى يتم استخدامها) بالإضافة إلى تقنيات التحليلات واسعة النطاق ومتعددة الاختبارات. تشمل الموضوعات الأخرى فصول S3 وتصور البيانات باستخدام ggplot2.

الصورة المصغرة: Logo for R. (CC BY-SA 4.0؛ Hadley Wickham and others at RStudio عبر https://www.r-project.org/logo/RStudio)


عشر قواعد بسيطة لعلماء الأحياء يتعلمون البرمجة

حقوق النشر: © 2018 كاري ، بابين. هذا مقال مفتوح الوصول يتم توزيعه بموجب شروط ترخيص Creative Commons Attribution License ، والذي يسمح بالاستخدام غير المقيد والتوزيع والاستنساخ في أي وسيط ، بشرط ذكر المؤلف والمصدر الأصليين.

التمويل: لم يتلق المؤلفون أي تمويل محدد لهذا العمل.

تضارب المصالح: وقد أعلن الباحثون إلى أن لا المصالح المتنافسة موجودة.

جيسون أ. بابين هو رئيس التحرير المشارك لـ علم الأحياء الحسابي PLOS.


عوامل الضرب

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

يتم الإشارة إلى العامل الثاني بنسبة٪ *٪ ويقوم بضرب المصفوفة بين المصفوفتين.

لاحظ أن ترتيب المصفوفات يؤثر على نتائج ضرب المصفوفات. يتم تحديد كل من المصفوفة الأصلية والمصفوفة الثانية بواسطة عامل ضرب المصفوفة ، ويتم دمجهما للحصول على نتيجة مصفوفة حاصل الضرب. إذا قمت بعكس ترتيب المصفوفة الأصلية والمصفوفة الثانية ، فستختلف المصفوفة الناتجة قليلاً عن حاصل ضرب المصفوفة في العملية الأولى.


أسئلة ترميز مقابلة علوم البيانات + كود الحل

24) ما متغير العامل في لغة R؟

متغيرات العامل هي متغيرات فئوية تحتوي إما على قيم سلسلة أو رقمية. تُستخدم متغيرات العامل في أنواع مختلفة من الرسومات وخاصة للنمذجة الإحصائية حيث يتم تعيين العدد الصحيح من درجات الحرية لهم.

25) ما هو الحد الأقصى للذاكرة في R؟

8 تيرابايت هي حد الذاكرة لذاكرة نظام 64 بت و 3 جيجابايت هي الحد الأقصى لذاكرة النظام 32 بت.

26) ما هي أنواع البيانات في R والتي يمكن تطبيق العوامل الثنائية عليها؟

المقاييس والمصفوفات والمتجهات الإعلانية.

27) كيف تنشئ نماذج لوغاريتمية خطية بلغة R؟ (انقر هنا للحصول على مشاكل المقابلة + كود الحل)

استخدام وظيفة loglm ()

28) ما هي فئة المتجه الناتج إذا قمت بتسلسل رقم و NA؟

29) ما هو أقرب الجار K؟

K-Nearest Neighbor هي واحدة من أبسط خوارزميات تصنيف التعلم الآلي وهي مجموعة فرعية من التعلم الخاضع للإشراف القائم على التعلم الكسول. في هذه الخوارزمية ، يتم تقريب الوظيفة محليًا ويتم تأجيل أي حسابات حتى التصنيف.

احصل على وصول مجاني إلى رموز أمثلة التعلم الآلي لتنظيف البيانات ، والتحكم في البيانات ، وتصور البيانات

30) ما هي فئة المتجه الناتج إذا قمت بتوصيل رقم وحرف؟

31) اكتب رمزًا لإنشاء دالة R مدعومة من C؟

32) إذا كنت تريد معرفة جميع القيم الموجودة في ج (1 ، 3 ، 5 ، 7 ، 10) غير الموجودة في ج (1 ، 5 ، 10 ، 12 ، 14). ما الوظيفة المضمنة في R التي يمكن استخدامها للقيام بذلك؟ أيضًا ، كيف يمكن تحقيق ذلك دون استخدام الوظيفة المضمنة.

استخدام وظيفة مدمجة - setdiff (c (1 ، 3 ، 5 ، 7 ، 10) ، c (1 ، 5 ، 10 ، 11 ، 13))

بدون استخدام وظيفة مدمجة - c (1 ، 3 ، 5 ، 7 ، 10) [! ج (1 ، 3 ، 5 ، 7 ، 10)٪ في٪ c (1 ، 5 ، 10 ، 11 ، 13).

33) كيف يمكنك تصحيح واختبار كود البرمجة R؟

يمكن اختبار كود R باستخدام اختبار Hadley & rsquos.

34) ماذا ستكون فئة المتجه الناتج إذا قمت بتسلسل رقم ومنطقي؟ (الحصول على مشاكل المقابلة + كود الحل)

35) اكتب دالة بلغة R لتحل محل القيمة المفقودة في المتجه بمتوسط ​​هذا المتجه.

36) ماذا يحدث إذا كان كائن التطبيق غير قادر على التعامل مع حدث؟

يتم إرسال الحدث إلى المفوض للمعالجة.

37) ميّز بين لابلي و سابلي.

إذا أراد المبرمجون أن يكون الناتج إطار بيانات أو متجهًا ، فسيتم استخدام وظيفة sapply بينما إذا أراد المبرمج أن يكون الإخراج قائمة ، فسيتم استخدام lapply. هناك وظيفة أخرى تُعرف باسم vapply وهي مفضلة على sapply لأن vapply يسمح للمبرمج بتحديد نوع الإخراج. عيب استخدام vapply هو أنه من الصعب تنفيذه وأكثر تفصيلاً.

38) ميّز بين seq (6) و seq_along (6)

Seq_along (6) سينتج متجهًا بطول 6 بينما seq (6) سينتج متجهًا متسلسلًا من 1 إلى 6 ج ((1،2،3،4،5،6)).

39) كيف ستقرأ ملف .csv بلغة R؟

تُستخدم الدالة read.csv () لقراءة ملف .csv بلغة R. يوجد أدناه مثال بسيط & ndash

filcontent & lt-read.csv (sample.csv)

40) كيف تكتب أوامر R؟

يجب أن يبدأ سطر الكود في لغة R برمز التجزئة (#).

41) كيف يمكنك التحقق مما إذا كان الكائن المحدد & ldquoX & rdquo هو كائن بيانات matric؟

إذا كانت استدعاء الدالة is.matrix (X) ترجع TRUE ، فيمكن تسمية X ككائن بيانات مصفوفة.

42) ما الذي تفهمه من خلال إعادة تدوير العناصر في R؟

إذا قام متجهان بأطوال مختلفة بإجراء عملية & ndash سيتم إعادة استخدام عناصر المتجه الأقصر لإكمال العملية. يشار إلى هذا باسم إعادة تدوير العناصر.

مثال & ndash Vector A & lt-c (1،2،0،4) و Vector B & lt- (3،6) ثم تكون نتيجة A * B (3،12،0،24). هنا يتم تكرار 3 و 6 من المتجه B عند حساب النتيجة.

43) كيف يمكنك التحقق مما إذا كان الكائن المحدد & ldquoX & rdquo هو كائن بيانات مصفوفة؟

إذا كان استدعاء الدالة is.matrix (X) يُرجع صحيحًا ، فيمكن اعتبار X ككائن بيانات مصفوفة بخلاف ذلك.

44) كيف ستقيس احتمال متغير استجابة ثنائي في لغة R؟

يمكن استخدام الانحدار اللوجستي لهذا الغرض وتوفر الوظيفة glm () في لغة R هذه الوظيفة.

45) ما هو استخدام وظائف العينة والمجموعة الفرعية في لغة البرمجة R؟

يمكن استخدام دالة العينة () لتحديد عينة عشوائية من الحجم & lsquon & rsquo من مجموعة بيانات ضخمة.

تُستخدم وظيفة المجموعة الفرعية () لتحديد المتغيرات والملاحظات من مجموعة بيانات معينة.

46) توجد دالة fn (a، b، c، d، e) a + b * c - d / e. اكتب الكود لاستدعاء fn على المتجه c (1،2،3،4،5) بحيث يكون الناتج هو نفسه fn (1،2،3،4،5).

do.call (fn، as.list (c (1، 2، 3، 4، 5)))

47) كيف يمكنك إعادة أخذ عينات من الاختبارات الإحصائية بلغة R؟

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

48) ما هو الغرض من استخدام العبارة التالية في لغة R؟

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

49) كيف ستنشئ مصفوفات مخطط التشتت في لغة R؟

يمكن إنتاج مصفوفة من مخططات التشتت باستخدام أزواج. تأخذ وظيفة الأزواج معلمات مختلفة مثل الصيغة والبيانات والمجموعة الفرعية والتسميات وما إلى ذلك.

المعلمتان الأساسيتان المطلوبتان لبناء مصفوفة مخطط التشتت هما & ndash

    صيغة- صيغة تشبه في الأساس

50) كيف يمكنك التحقق مما إذا كان العنصر 25 موجودًا في متجه؟

هناك طرق مختلفة للقيام بذلك-

  1. يمكن القيام بذلك باستخدام دالة match () function- match () ترجع أول ظهور لعنصر معين.
  2. والآخر هو استخدام٪ في٪ الذي يُرجع قيمة منطقية إما صواب أو خطأ.
  3. تُرجع الدالة Is.element () أيضًا قيمة منطقية إما صواب أو خطأ بناءً على ما إذا كانت موجودة في متجه أم لا.

51) ما هو الفرق بين وظائف Library () و تتطلب () في لغة R؟

لا يوجد فرق حقيقي بين الاثنين إذا لم يتم تحميل الحزم داخل الوظيفة. تتطلب الوظيفة () عادة داخل الوظيفة وترمي تحذيرًا عندما لا يتم العثور على حزمة معينة. على الجانب الآخر ، تعطي وظيفة library () رسالة خطأ إذا تعذر تحميل الحزمة المطلوبة.

52) ما هي القواعد لتحديد اسم متغير في لغة البرمجة R؟

يمكن أن يحتوي اسم متغير في لغة البرمجة R على أرقام وحروف أبجدية مع أحرف خاصة مثل النقطة (.) والتسطير (-). يمكن أن تبدأ أسماء المتغيرات في لغة R بأحرف أبجدية أو رمز النقطة. ومع ذلك ، إذا كان اسم المتغير يبدأ برمز نقطة ، فلا يجب أن يكون متبوعًا برقم رقمي.

53) ماذا تفهم من مساحة العمل في لغة البرمجة R؟

يشار إلى بيئة عمل R الحالية للمستخدم الذي لديه كائنات محددة بواسطة المستخدم مثل القوائم والمتجهات وما إلى ذلك باسم مساحة العمل في لغة R.

54) ما الوظيفة التي تساعدك على إجراء الفرز في لغة R؟

55) كيف ستدرج جميع مجموعات البيانات المتوفرة في جميع حزم R؟
باستخدام سطر التعليمات البرمجية أدناه-
data (package = .packages (all.available = TRUE))
56) ما الوظيفة المستخدمة لإنشاء تصور مدرج تكراري في لغة برمجة R؟
اصمت ()
57) اكتب الصيغة لتعيين مسار دليل العمل الحالي في بيئة R.
Setwd (& ldquodir_path & rdquo)

58) كيف ستسقط المتغيرات باستخدام المؤشرات في إطار البيانات؟ (الحصول على مشاكل المقابلة + كود الحل)

لنأخذ & rsquos إطار بيانات df & lt-data.frame (v1 = c (1: 5) ، v2 = c (2: 6) ، v3 = c (3: 7) ، v4 = c (4: 8))

لنفترض أننا نريد إسقاط المتغيرين v2 و amp v3 ، فيمكن إسقاط المتغيرين v2 و v3 باستخدام المؤشرات السلبية على النحو التالي-

59) ماذا سيكون ناتج runif (7)؟

سيولد 7 أرقام randowm بين 0 و 1.

60) ما هو الفرق بين الدالتين rnorm و runif؟

تقوم الدالة rnorm بإنشاء أرقام عشوائية عادية "n" بناءً على وسيطات الانحراف المعياري والمتوسط ​​التي تم تمريرها إلى الوظيفة.

تركيب دالة غير طبيعية -

تولد الدالة runif "n" أرقامًا عشوائية في الفاصل الزمني للحد الأدنى والحد الأقصى للقيم التي تم تمريرها إلى الدالة.

صيغة الدالة runif -

احصل على مزيد من الممارسة والمزيد من مشاريع علوم البيانات والتعلم الآلي والمزيد من الإرشادات. تتبع انتقالك الوظيفي بسرعة باستخدام ProjectPro

61) ماذا سيكون الناتج عند تنفيذ كود البرمجة R التالي & ndash

62) كيف ستجمع بين عدة سلاسل مختلفة مثل & ldquoData & rdquo ، & ldquoScience & rdquo ، & ldquoin & rdquo ، & ldquoR & rdquo ، & ldquoProgramming & rdquo كسلسلة واحدة & ldquoData_Science_in_R_Programmming & rdquo؟

63) اكتب دالة لاستخراج الاسم الأول من السلسلة ldquoMr. توم وايت rdquo و.

substr (& ldquo السيد. Tom White & rdquo ، بدء = 5 ، إيقاف = 7)

64) هل يمكنك معرفة ما إذا كانت المعادلة الواردة أدناه خطية أم لا؟ (الحصول على مشاكل المقابلة + كود الحل)

Emp_sal = 2000 + 2.5 (حجم_حامل) 2

نعم هي معادلة خطية لأن المعاملات خطية.

65) ماذا سيكون ناتج كود البرمجة R التالي؟

var2 & lt- c ("I" ، "Love ،" ProjectPro ")

66) ماذا سيكون ناتج كود البرمجة R التالي؟

طباعة ("X رقم زوجي")

طباعة ("X رقم فردي")

سيؤدي تنفيذ الكود أعلاه إلى حدوث خطأ كما هو موضح أدناه -

## 3: طباعة ("X هو رقم زوجي")

لا تعرف لغة البرمجة R ما إذا كان الأمر else متعلقًا بالأول & lsquoif & rsquo أم لا كأول إذا كان () أمرًا كاملاً من تلقاء نفسه.

67) لدي سلسلة نصية "[email protected]". ما هي وظيفة السلسلة التي يمكن استخدامها لتقسيم السلسلة إلى سلسلتين مختلفتين & ldquocontact @ dezyre & rdquo و & ldquocom & rdquo؟ (الحصول على مشاكل المقابلة + كود الحل)

يمكن تحقيق ذلك باستخدام وظيفة strsplit التي تقسم سلسلة بناءً على المعرف الوارد في استدعاء الوظيفة. ناتج الدالة strsplit () هو قائمة.

ناتج وظيفة strsplit هو -

68) ما هي باقة R Base؟

الحزمة الأساسية R هي الحزمة التي يتم تحميلها افتراضيًا كلما تم تحميل بيئة برمجة R. توفر الحزمة الأساسية R fucntionalites الأساسية في بيئة R مثل العمليات الحسابية والإدخال / الإخراج.

69) كيف ستدمج إطارين للبيانات في لغة برمجة R؟ (الحصول على مشاكل المقابلة + كود الحل)

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

تأخذ وظيفة Merge () في لغة R قائمة طويلة من الوسائط على النحو التالي & ndash

بناء الجملة لاستخدام وظيفة الدمج في لغة R -

دمج (x، y، by.x، by.y، all.x or all.y or all)

  • يمثل X أول إطار بيانات.
  • يمثل Y إطار البيانات الثاني.
  • by.X- اسم المتغير في إطار البيانات X الشائع في Y.
  • by.Y- اسم المتغير في إطار البيانات Y الشائع في X.
  • all.x - هي قيمة منطقية تحدد نوع الدمج. يجب ضبط all.X على true ، إذا أردنا جميع الملاحظات من dataframe X. ينتج عن هذا الانضمام إلى اليسار.
  • all.y - هي قيمة منطقية تحدد نوع الدمج. يجب ضبط all.y على true ، إذا أردنا جميع الملاحظات من إطار البيانات Y. ينتج عن هذا الحق الانضمام.
  • all & ndash يتم تعيين القيمة الافتراضية لهذا على FALSE مما يعني أنه يتم إرجاع الصفوف المطابقة فقط مما يؤدي إلى الصلة الداخلية. يجب تعيين هذا على "صواب" إذا كنت تريد أن تؤدي جميع الملاحظات من إطار البيانات X و Y إلى الصلة الخارجية.

70) اكتب كود البرمجة R لصفيف من الكلمات بحيث يتم عرض الخرج بترتيب تنازلي للتردد.

كود البرمجة R لعرض الإخراج بترتيب تنازلي للتردد -

انتاج -

71) كيفية التحقق من توزيع التردد لمتغير فئوي؟

يمكن التحقق من توزيع التردد لمتغير فئوي باستخدام دالة الجدول في لغة R. تحسب الدالة Table () عدد كل فئة من فئات المتغير الفئوي.

إخراج كود R أعلاه & ndash

يمكن للمبرمجين أيضًا حساب النسبة المئوية للقيم لكل مجموعة فئوية عن طريق تخزين الإخراج في إطار بيانات وتطبيق وظيفة النسبة المئوية للعمود كما هو موضح أدناه -

t = data.frame (جدول (جنس))
t $ بالمائة = الجولة (t $ Freq / sum (t $ Freq) * 100،2)

72) ما هو الإجراء للتحقق من التوزيع التكراري التراكمي لأي متغير فئوي؟ (الحصول على مشاكل المقابلة + كود الحل)

يمكن التحقق من التوزيع التكراري التراكمي لمتغير فئوي باستخدام دالة cumsum () في لغة R.

الجنس = عامل (c ("f"، "m"، "m"، "f"، "m"، "f"))
y = جدول (جنس)
cumsum (ذ)

إخراج كود R أعلاه-

73) ماذا ستكون نتيجة ضرب متجهين في R لهما أطوال مختلفة؟

سيتم تنفيذ الضرب في المتجهين وسيتم عرض الإخراج برسالة تحذير مثل & ndash & ldquo طول الكائن الأطول ليس مضاعفًا لطول الكائن الأقصر. & rdquo لنفترض وجود متجه a & lt-c (1 ، 2 ، 3) و المتجه b & lt- (2 ، 3) ثم مضاعفة المتجهات a * b ستعطي الناتج كـ 2 6 6 مع رسالة التحذير. يتم تنفيذ الضرب بطريقة متسلسلة ولكن نظرًا لأن الطول ليس متماثلًا ، فسيتم ضرب العنصر الأول من المتجه الأصغر ب مع العنصر الأخير من المتجه الأكبر أ.

74) تحتوي لغة البرمجة R على العديد من الحزم الخاصة بعلوم البيانات والتي تهدف إلى حل مشكلة معينة ، فكيف تقرر أيها ستستخدم؟

يحتوي مستودع حزم CRAN في R على أكثر من 6000 حزمة ، لذلك يحتاج عالم البيانات إلى اتباع عملية ومعايير محددة جيدًا لاختيار المناسب لمهمة محددة. عند البحث عن حزمة في مستودع CRAN ، يجب على عالم البيانات سرد جميع المتطلبات والقضايا حتى تتمكن حزمة R المثالية من تلبية جميع تلك الاحتياجات والقضايا.

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

75) كيف يمكنك دمج إطاري بيانات بلغة R؟

يمكن دمج إطارات البيانات في لغة R يدويًا باستخدام وظائف cbind () أو باستخدام وظيفة merge () في الصفوف أو الأعمدة الشائعة.

76) اشرح استخدام الدالة () في لغة R.

التي () دالة تحدد موضع العناصر في متجه منطقي يكون TRUE. في المثال أدناه ، نجد رقم الصف حيث يتم تسجيل الحد الأقصى لقيمة المتغير v1.

mydata = data.frame (v1 = c (2،4،12،3،6))
الذي (mydata $ v1 == max (mydata $ v1))
تقوم بإرجاع 3 حيث أن 12 هي القيمة القصوى وهي عند الصف الثالث في المتغير x = v1.

77) كيف ستحول متغير عامل إلى رقمي بلغة R؟ (الحصول على مشاكل المقابلة + كود الحل)

يمكن تحويل متغير عامل إلى رقمي باستخدام الدالة as.numeric () في لغة R. ومع ذلك ، يجب تحويل المتغير أولاً إلى حرف قبل تحويله إلى رقم لأن الدالة as.numeric () في R لا تُرجع القيم الأصلية ولكنها تُرجع متجه مستويات متغير العامل.

العامل X & lt (ج (4 ، 5 ، 6 ، 6 ، 4))
X1 = as.numeric (مثل الحرف (X))

78) اشرح أهمية لغة البرمجة R لعلوم البيانات؟

ط) يمكن إجراء معظم العمليات الحسابية بمساعدة المتجه لذلك يسهل على علماء البيانات إضافة وظائف إلى متجه واحد دون الحاجة إلى وضعها في حلقة.

ب) لغة تحول كاملة يمكن استخدامها لأي نوع من مهام علم البيانات سواء كان ذلك في مجال علم الوراثة أو الإحصاء أو علم الأحياء.

ج) كونها لغة مفسرة ، فإنها لا تتطلب أي تطوير مترجم يجعل الكود أسهل.

79) ما هو تحليل القوة؟

تحليل الطاقة هي العملية المستخدمة لتحديد تأثير حجم عينة معين وتستخدم بشكل عام للتصميم التجريبي. تُستخدم حزمة الكتابة في R لتحليل الطاقة.

80) اشرح استخدام وظيفة abline ().

تستخدم وظيفة abline في R لإضافة خط مرجعي إلى الرسم البياني. فيما يلي صيغة استخدام وظيفة abline -

81) ما هو استخدام الحزمة الشبكية في R؟

تساعد حزمة Lattice على تحسين رسومات R الأساسية من خلال توفير إعدادات افتراضية أفضل وتساعد بسهولة في عرض العلاقات متعددة الأنواع.

أسئلة مقابلة R لعلوم البيانات

1) ما هي الحاجة إلى تحليل المتغيرات في R؟

2) ضع قائمة ببعض الوظائف المفضلة لديك بلغة البرمجة R جنبًا إلى جنب مع استخدامها.

3) اشرح الاختلافات بين بايثون و R.

4) ما هو خيوط المعالجة المتعددة وكيف يمكنك تنفيذه بلغة البرمجة R؟

5) تنفيذ عمليات سلسلة في لغة R.

6) dplyr & lt- مكتبة "ggplot2" (dplyr). ما الحزمة التي سيتم تحميلها عند تنفيذ الأمر ولماذا؟

7) لماذا يجب عليك استخدام لغة R للعمل الإحصائي؟

8) ما هي عيوب البرمجة R على Python حسب رأيك؟

9) ما هي كائنات R التي عملت معها كثيرًا؟

10) قم ببناء شجرة بحث ثنائية بلغة R.

11) كيف يمكنك إنتاج علاقات مشتركة وتغايرات في لغة R lanaguge؟

12) كيف يمكنك تطوير حزمة بلغة R والتحكم في الإصدار؟

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

82) كيف ستحفظ ناتج قطعة الأرض؟

الإجابة: لإنشاء ملف pdf ، يمكنك استخدام وظيفة pdf () ، وإذا رغب المرء في حفظ المؤامرة بتنسيق jpeg ، فيمكنه استخدام وظيفة jpeg ().

س 2. لنفترض أن لديك مجموعة بيانات & lsquoCallRecords.csv & rsquo تحتوي على عمودين: & lsquodur_min & rsquo و & lsquobalance & rsquo. كيف سترسم رسم بياني للمتغيرين؟

النقطة الأساسية التي يجب تذكرها هي أنه للإشارة إلى متغير في R ، فإننا مطالبون بكتابة مجموعة البيانات واسم المتغير المرتبط برمز $ حيث لا يعرف R البحث عن المتغيرات في مجموعة البيانات تلقائيًا.

84) اكتب الكود لتنفيذ الانحدار الخطي على جميع متغيرات مجموعة البيانات & lsquod & rsquo باستثناء أحد المتغيرات ، & lsquoage & rsquo للتنبؤ بقيمة المتغير & lsquoy & rsquo.

في R ، يوجد معرّف خاص يمكن للمرء استخدامه في صيغة ليعني جميع المتغيرات ، وهو المعرّف & lsquo. & rsquo.

85) ما الذي تمثله العناصر (الرئيسية) القطرية وغير القطرية لمصفوفة الارتباك المطبوعة باستخدام دالة الجدول () في R؟

الإجابة: تمثل العناصر القطرية لمصفوفة الارتباك تنبؤات صحيحة لمتغير هدف معين بينما تمثل العناصر غير القطرية تنبؤات غير صحيحة.

86) كم عدد المدخلات التي تتطلبها وظيفة knn () لمكتبة الفصل في R؟ اشرح كل واحد منهم بإيجاز.

الإجابة: تتطلب الوظيفة knn () اتباع أربعة مدخلات:

مصفوفة تتكون من قيم السمات من بيانات التدريب.

مصفوفة تتكون من قيم ميزة من اختبار البيانات ، والتي نريد عمل تنبؤات لها.

متجه يحتوي على القيم المستهدفة أو تسميات الفئات لبيانات التدريب.

قيمة K تحدد عدد أقرب الجيران لاستخدامها بواسطة الخوارزمية.


3: البرمجة في R - Biology

ليس دائمًا من السهل جدًا قراءته ، ولكنه عملي نسخ ولصق تم اختيار التنسيق في هذا الدليل. في هذا التنسيق ، يتم تمثيل جميع الأوامر في مربعات التعليمات البرمجية ، حيث يتم تقديم التعليقات باللون الأزرق. لتوفير مساحة ، غالبًا ما يتم ربط عدة أوامر في سطر واحد وفصلها بفاصلة منقوطة ' ". تبدأ جميع التعليقات / التفسيرات بعلامة التعليق القياسية "#" لمنع تفسيرها بواسطة R كأوامر. بهذه الطريقة يمكن لصق العديد من الأوامر مع نص التعليق الخاص بها في وحدة التحكم R لعرض الوظائف وخطوات التحليل المختلفة. الأوامر التي تبدأ بعلامة "$" يجب أن يتم تنفيذها من قشرة Unix أو Linux. يمكن لمستخدمي Windows ببساطة تجاهلها. الأوامر المظللة باللون الأحمر تعتبر معرفة أساسية. إنها مهمة لشخص مهتم ببداية سريعة مع R والموصل الحيوي. عند الاقتضاء ، يتم إعطاء الإخراج الناتج بواسطة R باللون الأخضر.

  • يتم توفير إرشادات التثبيت في القسم الإداري من هذا الدليل.
  • بيئات العمل مع إبراز بناء الجملة والدعم والأدوات المساعدة لإرسال التعليمات البرمجية إلى وحدة التحكم R:
        : اختيار ممتاز للمبتدئين (ورقة الغش)
      • محررات أكواد R الأساسية مقدمة من Rguis و Rgedit و RKWard و Eclipse و Tinn-R و Notepad ++ (NppToR): بيئة عمل R تعتمد على vim و tmux (حزمة ESS الإضافية)

      يتم التحكم في بيئة R بواسطة ملفات مخفية في دليل بدء التشغيل: .RData و .Rhistory و .Rprofile (اختياري)

      البحث عن المساعدة

        بقلم رافائيل إريزاري ومايكل لوف ،

      • كيلي بلاك آر تعليمي
      • مقدمة كيم سيفيلد للإحصاء الحيوي
      • كتاب بيتر دالغارد إحصائيات تمهيدية مع R
        بواسطة Wim Krijnen.
        .

      • مراجع البرمجة R مدرجة في فصل "البرمجة في R" من هذا الدليل.

      أساسيات الوظائف والحزم

      يحتوي R على معظم الدوال الحسابية مثل المتوسط ​​، والوسيط ، والمجموع ، والناتج ، والربع ، والطول ، والسجل ، وما إلى ذلك. يمكن العثور على قائمة واسعة من وظائف R في صفحة الدالة والفهرس المتغير. يتم تخزين العديد من وظائف ومجموعات البيانات في حزم منفصلة ، والتي لا تتوفر إلا بعد تحميلها في جلسة R. يمكن العثور على معلومات حول تثبيت الحزم الجديدة في القسم الإداري من هذا الدليل.

      تحميل المكتبات / الحزم


      المعلومات وإدارة الأشياء

      أوامر النظام في نظام Linux

      قراءة وكتابة البيانات من / إلى الملفات

      التفاعل مع محرر مستندات جوجل

      كائنات R

      أنواع البيانات والكائنات

      • المتجهات: مجموعة مرتبة من القيم الرقمية والحرفية والمعقدة والمنطقية.
      • العوامل: نواقل من النوع الخاص مع تجميع المعلومات لمكوناتها
      • إطارات البيانات: هياكل ثنائية الأبعاد بأنواع بيانات مختلفة
      • المصفوفات: هياكل ثنائية الأبعاد مع بيانات من نفس النوع
      • المصفوفات: مصفوفات متعددة الأبعاد من النواقل
      • القوائم: الشكل العام للمتجهات مع أنواع مختلفة من العناصر
      • الوظائف: جزء من الكود
      • يجب ألا تبدأ أسماء الكائنات والصفوف والأعمدة برقم.
      • تجنب المسافات في أسماء العناصر والصفوف والأعمدة.
      • تجنب الأحرف الخاصة مثل "#".

      قواعد الدعم العام

      (1) التقسيم بأرقام المؤشر / المركز الموجبة أو السالبة

      (2) التقسيم بواسطة المتجهات المنطقية ذات الطول نفسه

      العوامل الأساسية والحسابات

          عوامل المقارنة
          • يساوي: ==
          • لا يساوي:! =
          • أكبر / أقل من: & GT & lt
          • أكبر / أصغر من أو يساوي: & gt = & lt = مثال:
            الحسابات [مؤشر الوظيفة]
            • أربع وظائف حسابية أساسية: الجمع والطرح والضرب والقسمة

          التعبيرات العادية

          تعمل أدوات التعبير العادي الخاصة بـ R بشكل مشابه لما في اللغات الأخرى. لمعرفة كيفية استخدامها في R ، يمكن للمرء الرجوع إلى صفحة المساعدة الرئيسية حول هذا الموضوع مع:؟ regexp.

          ثلاثة أبعاد

          عوامل

          تطبق الوظيفة tapply الحساب على جميع أعضاء المستوى

          المصفوفات والمصفوفات

          دمج المصفوفات: مثال لبناء جداول مواقع لألواح ميكروتيتر


          البرنامج النصي لرسم خرائط 24/48/96 إلى 384 لوحة جيدة

          إطارات البيانات

          التحديدات الشرطية

          إعادة تنسيق إطارات البيانات باستخدام reshape.2 وتقسيم / تطبيق الإجراءات باستخدام plyr

          ##############
          ## إعادة تشكيل 2 ##
          ##############
          ## بعض هذه العمليات مهمة لتخطيط الإجراءات باستخدام مكتبة ggplot2.
          ## تذوب: يربط العديد من الأعمدة

          مكتبة (reshape2)
          (iris_mean & lt- إجمالي (iris [، 1: 4]، by = list (Species = iris $ Species)، FUN = mean))
          نوع سيبال ، طول سبال ، عرض البتلة ، طول البتلة ، العرض
          1 سيتوسا 5.006 3.428 1.462 0.246
          2 متعدد الألوان 5.936 2.770 4.260 1.326
          3 فيرجينيكا 6.588 2.974 5.552 2.026

          (df_mean & lt- melt (iris_mean، id.vars = c ("Species")، variable.name = "Samples")) # انظر؟ melt.data.frame للحصول على التفاصيل.
          الأنواع قيمة العينات
          1 سيتوسا سيبال الطول 5.006
          عدد 2 سيبال متعدد الألوان ، الطول: 5.936
          3 فيرجينيكا سيبال الطول 6.588
          4 سيتوسا سيبال. العرض 3.428
          5 Sepal المبرقشة. العرض 2.770
          6 فيرجينيكا سيبال. العرض 2.974
          .

          ## dcast: مجاميع الصف cbinds (عكس نتيجة الذوبان)

          dcast (df_mean ، الصيغة = الأنواع

          . )
          نوع سيبال ، الطول سبال ، عرض البتلة ، طول البتلة ، العرض
          1 سيتوسا 5.006 3.428 1.462 0.246
          2 متعدد الألوان 5.936 2.770 4.260 1.326
          3 فيرجينيكا 6.588 2.974 5.552 2.026


          ## colsplit: يقسم السلاسل إلى أعمدة

          x & lt- c ("a_1_4" ، "a_2_3" ، "b_2_5" ، "c_3_9")
          colsplit (x، "_"، c ("trt"، "time1"، "time2"))
          TRT الوقت 1 مرة 2
          1 أ 1 4
          2 أ 2 3
          3 ب 2 5
          4 ج 3 9

          ##########
          ## plyr ##
          ##########
          مكتبة (plyr)
          ddply (.data = iris، .variables = c ("Species")، mean = mean (Sepal.Length)، تلخيص)
          الأنواع تعني
          1 سيتوسا 5.006.006
          2 المبرقشة 5.936.2
          3 فيرجينيكا 6.588

          ddply (.data = iris ، .variables = c ("Species") ، يعني = متوسط ​​(Sepal.Length) ، تحويل)
          سيبال ، طول سيبال ، عرض البتلة ، طول البتلة ، عرض الأنواع ، يعني
          1 5.1 3.5 1.4 0.2 سيتوسا 5.006.006
          2 4.9 3.0 1.4 0.2 سيتوسا 5.006.006
          3 4.7 3.2 1.3 0.2 سيتوسا 5.006.006
          4 4.6 3.1 1.5 0.2 سيتوسا 5.006.006
          .

          ## الاستخدام مع الحزمة المتوازية
          مكتبة (متوازية) (doMC) registerDoMC (2) # 2 مراكز
          test & lt- ddply (.data = iris، .variables = c ("Species")، mean = mean (Sepal.Length)، تلخيص، متوازي = TRUE)

          القوائم

          القوائم هي مجموعات مرتبة من العناصر التي يمكن أن تكون ذات أوضاع مختلفة (مثل المتجه الرقمي ، والمصفوفة ، وما إلى ذلك). يمكن تعيين اسم لكل مكون من مكونات القائمة.

          قيم مفقودة

          بعض وظائف R الرائعة

          ال طاولة() تحسب الدالة حدوث الإدخالات في متجه. إنها "وظيفة التجميع" الأساسية:

          ال combn () تقوم الوظيفة بإنشاء جميع مجموعات العناصر:

          ال مجموع() دالة تحسب أي نوع من الإحصائيات الموجزة لمجموعات البيانات الفرعية التي تم تجميعها معًا:

          ال تطبيق() تبسط وظيفة ترميز المهام التكرارية (حلقات). في المثال التالي ، يتم استخدام تطبيق () أولاً لحساب عملية حسابية على مصفوفة. في المثال الثاني ، تم استدعاء تطبيق () بواسطة دالة مخصصة colAg () لإجراء حسابات مماثلة ، ولكن السماح للمستخدم بتحديد أي مجموعة من مجاميع الأعمدة مع ناقل تجميع سهل التعامل معه.

          tgirke / Documents / R_BioCond / My_R_Scripts / colAg.R ") # يستورد وظيفة colAg ().
          colAg (myMA = myMA، group = c (1،1،1،2،2،2،3،3،4،4) ، myfct = متوسط) [1: 4،]
          # تطبيق عملية حسابية معطاة ضمن وسيطة myfct (هنا: متوسط) لتجميعات الأعمدة المحددة ضمن وسيطة المجموعة
          # (هنا: c (1،1،1،2،2،2،3،3،4،4)). تتم تسمية الأعمدة في الكائن الناتج على اسم المجاميع المختارة. ملاحظة: يمكن للوظيفة
          # فقط قم بإجراء تلك الحسابات التي يمكن تطبيقها على مجموعات من قيمتين أو أكثر ، مثل المتوسط ​​، والجمع ، و sd ، و min و max. أسرع بكثير
          # للحساب ، ولكن أقل مرونة ، يتم إعطاء البدائل في قسم إطار البيانات.

          ال ٪في٪ تقوم الدالة بإرجاع التقاطع بين متجهين. في سياق مقسم باستخدام " [ ] يمكن استخدامه لتقاطع المصفوفات وإطارات البيانات والقوائم:

          ال دمج() تنضم الوظيفة إلى إطارات البيانات استنادًا إلى عمود مفتاح مشترك:

          الإجراءات الرسومية

          مقدمة في R Graphics

              • قطعة: مخطط x-y عام
              • باربلوت: قطع شريط
              • مربع مؤامرة: مربع والخط الطولي مؤامرة
              • اصمت: الرسوم البيانية
              • فطيرة: الرسوم البيانية الدائرية
              • مخطط نقطي: مؤامرات كليفلاند دوت
              • صورة ، خريطة حرارية ، كفاف ، بيرس: وظائف لإنشاء مؤامرات تشبه الصور
              • qqnorm ، qqline ، qqplot: مؤامرات مقارنة التوزيع
              • أزواج ، كوبلوت: عرض بيانات متعددة المتغيرات

            المؤامرات المبعثرة

            y [، 1]، data = y [، 1: 2]) abline (myline، lwd = 2) # يضيف خط انحدار إلى الرسم البياني.
            Summary (myline) # طباعة ملخص حول خط الانحدار.
            المؤامرة (y [، 1]، y [، 2]، log = "xy") # يولد نفس المؤامرة على النحو الوارد أعلاه ، ولكن على مقياس السجل.
            مؤامرة (y [، 1]، y [، 2]) نص (y [1،1]، y [1،2]، تعبير (sum (frac (1، sqrt (x ^ 2 * pi)))) ، cex = 1.3) # يضيف معادلة رياضية إلى المؤامرة.
            plot (y) # ينتج كل مخططات التبعثر الممكنة لكل الأعمدة في مصفوفة أو إطار بيانات. رؤوس أعمدة
            # يتم استخدام المصفوفة أو إطار البيانات كعناوين محاور.
            أزواج (ص) # طريقة بديلة لإنتاج كل مخططات التبعثر الممكنة لكل الأعمدة في مصفوفة أو إطار بيانات.
            مكتبة (scatterplot3d) scatterplot3d (y [، 1: 3]، pch = 20، color = "red") # يرسم مخطط تبعثر ثلاثي الأبعاد للأعمدة الثلاثة الأولى في y.
            Library (geneplotter) smoothScatter (y [، 1]، y [، 2]) # كما هو مذكور أعلاه ، ولكنها تنشئ مخططًا مبعثرًا سلسًا يوضح الكثافة
            # من نقاط البيانات.


            1:10) # مخطط مبعثر بسيط.
            xyplot (1:10

            1:10 | rep (LETTERS [1: 5] ، كل منهم = 2) ، as.table = TRUE) # المكونات الفرعية للقطع المحددة عن طريق تجميع المتجه بعد '|' في لوحات منفصلة. يتحكم الوسيطة as.table في ترتيب اللوحات.
            myplot & lt- xyplot (عرض البتلة

            عرض سيبال | Species، data = iris) print (myplot) # يعين وظيفة الرسم على كائن وينفذها.
            xyplot (عرض البتلة

            عرض سيبال | الأنواع ، البيانات = القزحية ، التخطيط = ج (3 ، 1 ، 1)) # يغير تخطيط قطع الأراضي الفردية.

            ## تغيير معلمات التآمر
            show.settings () # يعرض معلمات الرسم العام في مجموعة من نماذج المؤامرات.
            الافتراضي & lt- trellis.par.get () mytheme & lt- الأسماء الافتراضية (mytheme) # يخزن معلمات الرسم العام في قائمة mytheme ويطبع عناوين مكوناتها.
            mytheme ["background"] [[1]] [[2]] & lt- "gray" # لتعيين الخلفية إلى اللون الرمادي
            mytheme ["strip.background"] [[1]] [[2]] & lt- "transparent" # لتعيين خلفية أشرطة العنوان إلى شفافة.
            trellis.par.set (mytheme) # يعين المعلمات العامة على "mytheme".
            show.settings () # يظهر الإعدادات المخصصة.
            xyplot (1:10

            1:10 | مندوب (LETTERS [1: 5] ، كل منهما = 2) ، as.table = TRUE ، التخطيط = c (1،5،1) ، col = c ("red" ، "blue"))
            trellis.par.set (افتراضي)

            قطع الخط

            عرض سيبال | الأنواع ، البيانات = قزحية العين ، النوع = "أ" ، التخطيط = ج (1،3،1))
            موازى(

            قزحية [1: 4] | الأنواع ، القزحية) # يرسم البيانات لكل نوع في مجموعة بيانات القزحية في مخطط خط منفصل.
            موازى(

            قزحية [1: 4] | الأنواع ، القزحية ، المحور الأفقي = خطأ ، التخطيط = ج (1 ، 3 ، 1)) # يغير تخطيط قطعة الأرض.

            الأنواع ، ncol = 1) # يرسم ثلاثة مخططات خطية ، واحدة لكل عينة في عمود الأنواع.

            قطع شريط

            tgirke/Documents/R_BioCond/My_R_Scripts/mortgage.R")
            # Imports a function that plots a loan amortization table as bar plot.

            ## (A) Sample Set: the following transforms the iris data set into a ggplot2-friendly format
            iris_mean <- aggregate(iris[,1:4], by=list(Species=iris$Species), FUN=mean) # Calculates the mean values for the aggregates given by the Species column in the iris data set.
            iris_sd <- aggregate(iris[,1:4], by=list(Species=iris$Species), FUN=sd) # Calculates the standard deviations for the aggregates given by the Species column in the iris data set.
            convertDF <- function(df=df, mycolnames=c("Species", "Values", "Samples")) < myfactor <- rep(colnames(df)[-1], each=length(df[,1])) mydata <- as.vector(as.matrix(df[,-1])) df <- data.frame(df[,1], mydata, myfactor) colnames(df) <- mycolnames return(df) ># Defines function to convert data frames into ggplot2-friendly format.
            df_mean <- convertDF(iris_mean, mycolnames=c("Species", "Values", "Samples")) # Converts iris_mean.
            df_sd <- convertDF(iris_sd, mycolnames=c("Species", "Values", "Samples")) # Converts iris_sd.
            limits <- aes(ymax = df_mean[,2] + df_sd[,2], ymin=df_mean[,2] - df_sd[,2]) # Define standard deviation limits.

            ## (B) Bar plots of data stored in df_mean
            ggplot(df_mean, aes(Samples, Values, fill = Species)) + geom_bar(position="dodge") # Plots bar sets defined by 'Species' column next to each other.
            ggplot(df_mean, aes(Samples, Values, fill = Species)) + geom_bar(position="dodge") + coord_flip() + opts(axis.text.y=theme_text(angle=0, hjust=1)) # Plots bars and labels sideways.
            ggplot(df_mean, aes(Samples, Values, fill = Species)) + geom_bar(position="stack") # Plots same data set as stacked bars.
            ggplot(df_mean, aes(Samples, Values)) + geom_bar(aes(fill = Species)) + facet_wrap(

            Species, ncol=1) # Plots data sets below each other.
            ggplot(df_mean, aes(Samples, Values, fill = Species)) + geom_bar(position="dodge") + geom_errorbar(limits, position="dodge") # Generates the same plot as before, but with error bars.

            # (C) Customizing colors
            library(RColorBrewer) display.brewer.all() # Select a color scheme and pass it on to 'scale_*' arguments.
            ggplot(df_mean, aes(Samples, Values, fill=Species, color=Species)) + geom_bar(position="dodge") + geom_errorbar(limits, position="dodge") + scale_fill_brewer(pal="Greys") + scale_color_brewer(pal = "Greys") # Generates the same plot as before, but with grey color scheme.
            ggplot(df_mean, aes(Samples, Values, fill=Species, color=Species)) + geom_bar(position="dodge") + geom_errorbar(limits, position="dodge") + scale_fill_manual(values=c("red", "green3", "blue")) + scale_color_manual(values=c("red", "green3", "blue")) # Uses custom colors passed on as vectors.

            الرسوم البيانية الدائرية

            Heatmaps

            ## Sample data
            library(lattice) library(gplots)
            y <- lapply(1:4, function(x) matrix(rnorm(50), 10, 5, dimnames=list(paste("g", 1:10, sep=""), paste("t", 1:5, sep=""))))

            ## Plot single heatmap:
            levelplot(y[[1]])

            ## Arrange several heatmaps in one plot
            x1 <- levelplot(y[[1]], col.regions=colorpanel(40, "darkblue", "yellow", "white"), main="colorpanel")
            x2 <- levelplot(y[[2]], col.regions=heat.colors(75), main="heat.colors")
            x3 <- levelplot(y[[3]], col.regions=rainbow(75), main="rainbow")
            x4 <- levelplot(y[[4]], col.regions=redgreen(75), main="redgreen")
            print(x1, split=c(1,1,2,2))
            print(x2, split=c(2,1,2,2), newpage=FALSE)
            print(x3, split=c(1,2,2,2), newpage=FALSE)
            print(x4, split=c(2,2,2,2), newpage=FALSE)

            Arrange several heatmaps in one plot with 'nearly' fixed row height

            ## Sample matrix with rows sorted by clustering dendrogram
            y <- matrix(rnorm(100), 20, 5, dimnames=list(paste("g", 1:20, sep=""), paste("t", 1:5, sep="")))
            hr <- hclust(as.dist(1-cor(t(y), method="pearson")), method="complete") # Hierarchical clustering of rows
            y <- y[hr$order,] # Orders rows in matrix by clustering dendrogram
            y <- t(scale(t(y))) # Scaling is necessary since levelplot() does not scale the data

            ## Plot matrix as heatmap with levelplot
            library(lattice) library(gplots) library(grid)
            x1 <- levelplot(t(y), col.regions=colorpanel(40, "darkblue", "yellow", "white"), colorkey=list(TRUE, space="bottom"), scales=list(x=list(cex=1.3), y=list(cex=1.3)), xlab="", ylab="", main="20 genes", aspect="fill")
            x2 <- levelplot(t(y[11:20,]), col.regions=colorpanel(40, "darkblue", "yellow", "white"), colorkey=FALSE, scales=list(x=list(cex=1.3), y=list(cex=1.3)), xlab="", ylab="", main="10 genes", aspect="fill")
            x3 <- levelplot(t(y[1:5,]), col.regions=colorpanel(40, "darkblue", "yellow", "white"), colorkey=FALSE, scales=list(x=list(cex=1.3), y=list(cex=1.3)), xlab="", ylab="", main="5 genes", aspect="fill")

            ## Arrange plots in single view
            png("heatmap_many.png")
            grid.newpage() # Open a new page on grid device
            pushViewport(viewport(layout = grid.layout(4, 2, heights=unit(c(0.55, 0.01, 0.37, 0.07), "npc")))) # Define plotting grid and height of each plotting panel. The latter defines the height of each heatmap.
            vp <- pushViewport(viewport(layout.pos.row=1:4, layout.pos.col=1))
            print(x1, vp = vp, newpage=FALSE)
            popViewport()
            vp <- pushViewport(viewport(layout.pos.row=1, layout.pos.col=2))
            print(x2, vp = vp, newpage=FALSE)
            popViewport()
            vp <- pushViewport(viewport(layout.pos.row=3, layout.pos.col=2))
            print(x3, vp = vp, newpage=FALSE)
            dev.off()

            Venn Diagrams

            Computation of Venn intersects
            The following imports several functions from the overLapper.R script for computing Venn intersects and plotting Venn diagrams (old version: vennDia.R). These functions are relatively generic and scalable by supporting the computation of Venn intersects of 2-20 or more samples. The upper limit around 20 samples is unavoidable because the complexity of Venn intersects increases exponentially with the sample number ن according to this relationship: (2^n) - 1. A useful feature of the actual plotting step is the possiblity to combine the counts from several Venn comparisons with the same number of test sets in a single Venn diagram. The overall workflow of the method is to first compute for a list of samples sets their Venn intersects using the overLapper function, which organizes the result sets in a list object. Subsequently, the Venn counts are computed and plotted as bar or Venn diagrams. The current implementation of the plotting function, vennPlot , supports Venn diagrams for 2-5 sample sets. To analyze larger numbers of sample sets, the Intersect Plot methods often provide reasonable alternatives. These methods are much more scalable than Venn diagrams, but lack their restrictive intersect logic. Additional Venn diagram resources are provided by limma, gplots, vennerable, eVenn, VennDiagram, shapes, C Seidel (online) and Venny (online).

            tgirke/Documents/R_BioCond/My_R_Scripts/overLapper.R") # Imports required functions.
            setlist <- list(A=sample(letters, 18), B=sample(letters, 16), C=sample(letters, 20), D=sample(letters, 22), E=sample(letters, 18), F=sample(letters, 22, replace=T))
            # To work with the overLapper function, the sample sets (here six) need to be stored in a list object where the different
            # compontents are named by unique identifiers, here 'A to F'. These names are used as sample labels in all subsequent data
            # sets and plots.
            sets <- read.delim("http://faculty.ucr.edu/

            tgirke/Documents/R_BioCond/Samples/sets.txt")
            setlistImp <- lapply(colnames(sets), function(x) as.character(sets[sets[,x]!="", x]))
            names(setlistImp) <- colnames(sets)
            # Example how a list of test sets can be imported from an external table file stored in tab delimited format. مثل
            # a file can be easily created from a spreadsheet program, such as Excel. As a reminder, copy & paste from external
            # programs into R is also possible (see read.delim function).
            OLlist <- overLapper(setlist=setlist, sep="_", type="vennsets") OLlist names(OLlist)
            # With the setting type="vennsets", the overLapper function computes all Venn Intersects for the six test samples in
            # setlist and stores the results in the Venn_List component of the returned OLlist object. By default, duplicates are
            # removed from the test sets. The setting keepdups=TRUE will retain duplicates by appending a counter to each entry. متي
            # assigning the value "intersects" to the type argument then the function will compute Regular
            # Intersects instead of Venn Intersects. The Regular Intersect approach (not compatible with Venn diagrams!) is described
            # in the next section. Both analyses return a present-absent matrix in the Intersect_Matrix component of OLlist. Each overlap
            # set in the Venn_List data set is labeled according to the sample names provided in setlist. For instance, the composite
            # name 'ABC' indicates that the entries are restricted to A, B and C. The seperator used for naming the intersect samples
            # can be specified under the sep argument. By adding the argument cleanup=TRUE, one can minimize formatting issues in the
            # sample sets. This setting will convert all characters in the sample sets to upper case and remove leading/trailing spaces.

            #############################
            ## Bar plot of Venn counts ##
            #############################
            olBarplot(OLlist=OLlist, horiz=T, las=1, cex.names=0.6, main="Venn Bar Plot")
            # Generates a bar plot for the Venn counts of the six test sample sets. In contrast to Venn diagrams, bar plots scale
            # to larger numbers of sample sets. The layout of the plot can be adjusted by changing the default values of the argument:
            # margins=c(4,10,3,1). The minimum number of counts to consider in the plot can be set with the mincount argument
            # (default is 0). The bars themselves are colored by complexity levels using the default setting: mycol=OLlist$Complexity_Levels.

            #########################
            ## 2-way Venn diagrams ##
            #########################
            setlist2 <- setlist[1:2] OLlist2 <- overLapper(setlist=setlist2, sep="_", type="vennsets")
            OLlist2$Venn_List counts <- sapply(OLlist2$Venn_List, length) vennPlot(counts=counts)
            # Plots a non-proportional 2-way Venn diagram. The main graphics features of the vennPlot function can be controlled by
            # the following arguments (here with 2-way defaults): mymain="Venn Diagram": main title mysub="default": subtitle
            # ccol=c("black","black","red"): color of counts lcol=c("red","green"): label color lines=c("red","green"):
            # line color mylwd=3: line width ccex=1.0: font size of counts lcex=1.0: font size of labels. Note: the vector
            # lengths provided for the arguments ccol, lcol and lines should match the number of their corresponding features
            # in the plot, e.g. 3 ccol values for a 2-way Venn diagram and 7 for a 3-way Venn diagram. The argument setlabels
            # allows to provide a vector of custom sample labels. However, assigning the proper names in the original test set list
            # is much more effective for tracking purposes.

            #########################
            ## 3-way Venn diagrams ##
            #########################
            setlist3 <- setlist[1:3] OLlist3 <- overLapper(setlist=setlist3, sep="_", type="vennsets")
            counts <- list(sapply(OLlist3$Venn_List, length), sapply(OLlist3$Venn_List, length))
            vennPlot(counts=counts, mysub="Top: var1 Bottom: var2", yoffset=c(0.3, -0.2))
            # Plots a non-proportional 3-way Venn diagram. The results from several Venn comparisons can be combined in a
            # single Venn diagram by assigning to the count argument a list with several count vectors. The positonal offset
            # of the count sets in the plot can be controlled with the yoffset argument. The argument setting colmode=2 allows
            # to assign different colors to each count set. For instance, with colmode=2 one can assign to ccol a color vector
            # or a list, such as ccol=c("blue", "red") or ccol=list(1:8, 8:1).

            #########################
            ## 4-way Venn diagrams ##
            #########################
            setlist4 <- setlist[1:4]
            OLlist4 <- overLapper(setlist=setlist4, sep="_", type="vennsets")
            counts <- list(sapply(OLlist4$Venn_List, length), sapply(OLlist4$Venn_List, length))
            vennPlot(counts=counts, mysub="Top: var1 Bottom: var2", yoffset=c(0.3, -0.2))
            # Plots a non-proportional 4-way Venn diagram. The setting type="circle" returns an incomplete 4-way Venn diagram as
            # circles. This representation misses two overlap sectors, but is sometimes easier to navigate than the default
            # ellipse version.

            #########################
            ## 5-way Venn diagrams ##
            #########################
            setlist5 <- setlist[1:5] OLlist5 <- overLapper(setlist=setlist5, sep="_", type="vennsets")
            counts <- sapply(OLlist5$Venn_List, length)
            vennPlot(counts=counts, ccol=c(rep(1,30),2), lcex=1.5, ccex=c(rep(1.5,5), rep(0.6,25),1.5)) # Plots a non-proportional 5-way Venn diagram.


            شاهد الفيديو: Programming in R: Functions in R (يونيو 2022).


تعليقات:

  1. Mani

    انت مخطئ. اكتب لي في PM ، وتحدث.

  2. Frans

    الخريف!!!

  3. Cloridan

    لدي موقف مشابه. أدعوك إلى مناقشة.



اكتب رسالة