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

عمليات أساسية في R

هذا الفصل يقدم عمليات بسيطة بلغة R.

الت赋يف

على عادة، في اللغات الأخرى، يتم الت赋يف كالتالي: = الرقم، ولكن لغة R هي لغة رياضيات، لذا علامة التساوي مشابهة جدًا للكود الوهمي في كتب الرياضيات، وهي رمز المثلث الأيسر <-:

a <- 123
b <- 456
تدفق(a + b)

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

[1] 579

علامة التساوي هذه هي نقطة قوة شكلية ونقطة ضعف عملية في لغة R: شكلية أكثر ملاءمة للعاملين في الرياضيات، لأن ليس كل عامل في الرياضيات معتاد على استخدام = كعلامة التساوي.

من الناحية العملية، الرمز < والرمز - ليسا كلمات مرادفة جيدة للكتابة، مما يجعل العديد من المبرمجين غير مريحين. لذلك، يدعم إصدار R الجديد = كعلامة التساوي:

a = 123
b = 456
تدفق(a + b)

هذا هو برنامج R صالح.

ملاحظة:من الصعب التحقق من الإصدار من R بدءاً من = تعيين، ولكن الإصدار الذي يستخدمه هذا الدليل هو R 4.0.0.

الدوال الرياضية

يظهر الجدول أدناه الدوال الرياضية الرئيسية وأساليبها:

الطيفالعلامةالتعريف
1()الكتلة
2^الجبرة
3%%القسمة الكاملة مع الباقي
 %/%القسمة الكاملة
4*الضرب
 /القسمة
5+الجمع
 -الطرح

يظهر المثال أدناه عمليات الرياضيات البسيطة:

> 1 + 2 * 3
[1] 7
> (1 + 2) * 3
[1] 9
> 3 / 4
[1] 0.75
> 3.4 - 1.2
[1] 2.2
> 1 - 4 * 0.5^3
[1] 0.5
> 8 / 3 %% 2
[1] 8
> 8 / 4 %% 2
[1] Inf
> 3 %% 2^2
[1] 3
> 10 / 3 %% 2
[1] 10

الدوال العلاقاتية

يظهر الجدول أدناه الدوال العلاقاتية التي يدعمها لغة R، تقارن الدوال العلاقاتية بين م矢量ين، وتعيد قيمة منطقية.

المعادلةالوصف
>تحديد ما إذا كان كل عنصر من الم矢量 أكبر من عنصر الم矢量 المماثل.
<تحديد ما إذا كان كل عنصر من الم矢量 أقل من عنصر الم矢量 المماثل.
==تحديد ما إذا كان كل عنصر من الم矢量 يساوي عنصر الم矢量 المماثل.
!=تحديد ما إذا كان كل عنصر من الم矢量 مختلفاً عن عنصر الم矢量 المماثل.
>=تحديد ما إذا كان كل عنصر من الم矢量 أكبر أو يساوي عنصر الم矢量 المماثل.
<=تحديد ما إذا كان كل عنصر من الم矢量 أقل أو يساوي عنصر الم矢量 المماثل.
v <- c(2,4,6,9)
t <- c(1,4,7,9)
تدفق(v>t)
تدفق(v < t)
تدفق(v == t)
تدفق(v!=t)
تدفق(v>=t)
تدفق(v<=t)

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

[1] TRUE FALSE FALSE FALSE
[1] FALSE FALSE TRUE FALSE
[1] FALSE TRUE FALSE TRUE
[1] TRUE FALSE TRUE FALSE
[1]  TRUE  TRUE FALSE  TRUE
[1] FALSE TRUE TRUE TRUE

عمليات منطقية

الجدول التالي يوضح عمليات العمليات المنطقية التي يدعمها لغة R، يمكن استخدامها مع الأعداد، الدرجات والمعقدات.

اعداد بزرگتر از 1 TRUE هستند.

عامليه منطقية مقایسه دو درجه‌ها، هر عنصر از درجه‌های اول با عنصر مربوطه از درجه‌های دوم مقایسه می‌شوند، نتیجه یک درجه بولی برمی‌گردد.

المعادلةالوصف
&عامليه و منطقية عنصر، هر عنصر از درجه‌های اول با عنصر مربوطه از درجه‌های دوم ترکیب می‌شوند، اگر هر دو TRUE باشند، نتیجه TRUE خواهد بود، در غیر این صورت FALSE.
عامليه یا منطقية عنصر، هر عنصر از درجه‌های اول با عنصر مربوطه از درجه‌های دوم ترکیب می‌شوند، اگر یکی از عناصر TRUE باشد، نتیجه TRUE خواهد بود، اگر هر دو FALSE باشند، نتیجه FALSE برمی‌گردد.
!عامليه غیر منطقية، ارزش منطقی عکس هر عنصر از درجه‌ها برمی‌گردد، اگر عنصر TRUE باشد، FALSE برمی‌گردد، اگر FALSE باشد، TRUE.
&&عامليه و منطقية، فقط برای عنصر اول دو درجه‌ها بررسی می‌شوند، اگر هر دو TRUE باشند، نتیجه TRUE خواهد بود، در غیر این صورت FALSE.
||عامليه أو منطقية، فقط برای عنصر اول دو درجه‌ها بررسی می‌شوند، اگر یکی از عناصر TRUE باشد، نتیجه TRUE خواهد بود، اگر هر دو FALSE باشند، نتیجه FALSE برمی‌گردد.
v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)
print(v|t)
print(!v)
# &&、|| فقط برای عنصر اول مقایسه می‌شوند
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)
v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)

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

[1]  TRUE  TRUE FALSE  TRUE
[1] TRUE TRUE TRUE TRUE
[1] FALSE FALSE FALSE FALSE
[1] TRUE
[1] FALSE

عمليات التخصيص

يمكن استخدام علامات التخصيص إلى اليسار، إلى اليمين أو المساواة في لغة R لتخصيص المتغيرات.

الجدول التالي يوضح عمليات التخصيص التي يدعمها لغة R.

المعادلةالوصف

<−

=

<<−

إلى اليسار

−>

−>>

إلى اليمين
# 向左赋值
v1 <- c(3,1,TRUE,"w3codebox")
v2 <<- c(3,1,TRUE,"w3codebox")
v3 = c(3,1,TRUE,"w3codebox")
print(v1)
print(v2)
print(v3)
# 向右赋值
c(3,1,TRUE,"w3codebox") -> v1
c(3,1,TRUE,"w3codebox") ->> v2 
print(v1)
print(v2)

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

[1] "3" "1" "TRUE" "w3codebox"
[1] "3" "1" "TRUE" "w3codebox"
[1] "3" "1" "TRUE" "w3codebox"
[1] "3" "1" "TRUE" "w3codebox"
[1] "3" "1" "TRUE" "w3codebox"

معادلات أخرى

يحتوي لغة R على بعض معادلات خاصة.

المعادلةالوصف
:عنصر التكرار، لإنشاء سلسلة من الأرقام كفريق.
%in%لتحديد ما إذا كان العنصر موجودًا في الفريق، يعود بقيمة بولية،بالفعل يعود TRUE، لا يعود FALSE.
%*%للضرب بين المصفوفة وبعكسها
# الفريق من 1 إلى 10
v <- 1:10
print(v) 
# تحديد ما إذا كان الرقم موجودًا في الفريق v
v1 <- 3
v2 <- 15
print(v1 %in% v) 
print(v2 %in% v) 
# ضرب مصفوفة بالعكس الصحيح لها
M = matrix(c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

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

[1] 1 2 3 4 5 6 7 8 9 10
[1] TRUE
[1] FALSE
     [,1] [,2]
[1,] 65 82
[2,] 82 117

الدوال الرياضية

توجد دوال رياضية شائعة لبعض دوال الرياضيات:

الوظيفةالشرح
sqrt(n)جذر مربع n
exp(n)مثلث الطبيعي e مرفوعًا إلى القوة n،
log(m,n)دالة اللوغاريثم m، تعود بالعدد n الذي يساوي n مرة هو m
log10(m)يساوي log(m,10)

الامثلة التالية توضح تطبيق دوال الرياضيات:

> sqrt(4)
[1] 2
> exp(1)
[1] 2.718282
> exp(2)
[1] 7.389056
> log(2,4)
[1] 0.5
> log10(10000)
[1] 4

دوال التقريب:

الاسمنموذج المعلماتالتعريف
round(n)تقريب n إلى أقرب عدد كامل
 (n, m)تقريب n إلى m أرقامًا عشرية
ceiling(n)تقريب n إلى الأعلى
floor(n)تقريب n إلى الأسفل

الامثلة التالية توضح تطبيق دالة التقريب:

> round(1.5)
[1] 2
> round(2.5)
[1] 2
> round(3.5)
[1] 4
> round(4.5)
[1] 4

الإشارة: قد تكون وظيفة round في R معروفة بأنها قد "تخلي عن الخمس" في بعض الحالات.

عندما يكون العدد صحيحًا، يتم التخلي عن الصفر، مما يختلف عن لغة C.

وظائف الجبر في R هي بنظام الوحدات

> sin(pi/6)
[1] 0.5
> cos(pi/4)
[1] 0.7071068
> tan(pi/3)
[1] 1.732051

الوظائف العكسية للزاوية:

> asin(0.5)
[1] 0.5235988
> acos(0.7071068)
[1] 0.7853981
> atan(1.732051)
[1] 1.047198

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

> dnorm(0)
[1] 0.3989423
> pnorm(0)
[1] 0.5
> qnorm(0.95)
[1] 1.644854
> rnorm(3, 5, 2) # ينتج 3 عشوائيات ذات متوسط 5، وتباين 2
[1] 4.177589 6.413927 4.206032

كلها تستخدم لحساب التوزيعات العادية. تنتهي أسماؤها بـ norm، مما يعني "التوزيع العادي".

يوجد أربعة أسماء مسبقة لمصطلحات التوزيعات:

  • d - وظيفة دالة كثافة التردد

  • p - وظيفة دالة كثافة التردد (الترميز من الصفر إلى x)

  • q - وظيفة قسط

  • r - وظيفة عدد عشوائي (تستخدم غالبًا في المحاكاة الإحصائية)

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