انتقل إلى المحتوى

استخدام لغة R في تحليل البيانات

تثبيت البرامج

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

مصادر التعلم

موارد عبر الإنترنت (موصى بها)

الكتب

أنواع البيانات الأساسية

أنواع البيانات في لغة R تشمل بشكل أساسي ما يلي:

  • الأعداد (Numerics)
  • الأعداد الصحيحة (Integers)
  • الأعداد المركبة (Complex)
  • المنطقية (Logical)
  • النصية (Characters)

الأعداد (Numerics)

الأعداد هي أنواع البيانات الأساسية في لغة R. عندما نسند قيمة عددية إلى متغير، سيكون نوع المتغير هو الأعداد:

> x = 11.15       # قم بتعيين القيمة 11.15 إلى المتغير x
> x              # اعرض قيمة المتغير x
[1] 11.15
> class(x)       # اعرض نوع المتغير x
[1] "numeric"

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

الأعداد الصحيحة (Integers)

لإنشاء متغيرات من نوع الأعداد الصحيحة، يجب استخدام وظيفة as.integer:

> y = as.integer(3)
> y              # اعرض قيمة المتغير y
[1] 3
> class(y)       # اعرض نوع المتغير y
[1] "integer"
> is.integer(y)  # هل المتغير y من نوع الأعداد الصحيحة؟
[1] TRUE

بالإضافة إلى استخدام وظيفة is.integer، يمكنك أيضًا إضافة اللاحقة L لتحقيق نفس الغرض:

> y = 3L
> is.integer(y)  # هل المتغير y من نوع الأعداد الصحيحة؟
[1] TRUE

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

> as.integer(3.14)    # قم بتقريب المتغير إلى أقرب عدد صحيح
[1] 3

يمكن أيضًا تحليل سلاسل نصية وتقريبها إلى أقرب عدد صحيح:

> as.integer("5.27")  # قم بتحليل السلسلة النصية وتقريبها إلى أقرب عدد صحيح
[1] 5

لكن إذا تم تحليل سلسلة نصية لا تحتوي على أرقام، ستظهر رسالة خطأ:

> as.integer("Joe")   # قم بتحليل سلسلة نصية غير عددية
[1] NA
Warning message:
NAs introduced by coercion

لغة R تحتكم إلى نفس مبدأ لغة C عندما ترتبط الأعداد الصحيحة بقيم 1 و0 المنطقية:

> as.integer(TRUE)    #

```markdown
```r
> z = 1 + 2i     # Create a complex variable z
> z              # Output the value of z
[1] 1+2i
> class(z)       # Output the type of z
[1] "complex"

If we simply take the square root of -1, it will result in an error:

> sqrt(-1)       # Take the square root of -1
[1] NaN
Warning message:
In sqrt(-1) : NaNs produced

But taking the square root of the complex number -1+0i is not a problem:

> sqrt(-1+0i)    # Take the square root of -1+0i
[1] 0+1i

You can also perform the operation using type coercion:

> sqrt(as.complex(-1))
[1] 0+1i

Logical

Logical values are typically generated by comparing variables:

> x = 1; y = 2   # Sample variables
> z = x > y      # Is x greater than y?
> z              # Output a logical variable
[1] FALSE
> class(z)       # Output the type of z
[1] "logical"

Basic logical operations include & (and), | (or), and ! (not):

> u = TRUE; v = FALSE
> u & v          # Perform "and" operation on u and v
[1] FALSE
> u | v          # Perform "or" operation on u and v
[1] TRUE
> !u             # Perform "not" operation on u
[1] FALSE

Character

Character values can be obtained using the as.character function:

> x = as.character(3.14)
> x              # Output the string
[1] "3.14"
> class(x)       # Output the type of x
[1] "character"

To concatenate two character variables, you can use the paste function:

> fname = "Joe"; lname ="Smith"
> paste(fname, lname)
[1] "Joe Smith"

Similar to C syntax, you can use format strings for improved readability using the sprintf function:

> sprintf("%s has %d dollars", "Sam", 100)
[1] "Sam has 100 dollars"

To extract a substring from a string, you can use the substr function (in the example, characters between the 3rd and 12th positions are extracted):

> substr("Mary has a little lamb.", start=3, stop=12)
[1] "ry has a l"

If you want to replace the first occurrence of a character with another character, you can use the sub function (in the example, "little" is replaced with "big"):

> sub("little", "big", "Mary has a little lamb.")
[1] "Mary has a big lamb."

Vectors

Vectors in R

A vector is an array that contains elements of the same type, and the members within a vector are referred to as components.

Here's an example of a vector (containing three numeric variables: 2, 3, and 5):

> c(2, 3, 5)
[1] 2 3 5

Vectors can also consist entirely of logical values:

> c(TRUE, FALSE, TRUE, FALSE, FALSE)
[1] TRUE FALSE TRUE FALSE FALSE

Character vectors are also possible:

> c("aa", "bb", "cc", "dd", "ee")
[1] "aa" "bb" "cc" "dd" "ee"

To find out how many members are in a vector, you can use the length function:

```r
> length(c("aa", "bb", "cc", "dd", "ee"))
[1] 5

Merging Vectors

To merge two vectors, you can use the c function:

> n = c(2, 3, 5)
> s = c("aa", "bb", "cc", "dd", "ee")
> c(n, s)
[1] "2"  "3"  "5"  "aa" "bb" "cc" "dd" "ee"

Note that in the example above, when merging two vectors of different data types, the resulting vector will be of a type that is more permissive (i.e., it will convert from a stricter type to a looser type, such as converting numeric to character).

Basic Vector Operations

Let's assume two vectors a and b:

> a = c(1, 3, 5, 7)
> b = c(1, 2, 4, 8)

Here are some basic vector operations:

> a + b
[1] 2 5 9 15

> a - b
[1] 0 1 1 -1

> 5 * a
[1] 5 15 25 35

> a * b
[1] 1 6 20 56

> a / b
[1] 1.000 1.500 1.250 0.875

If the two vectors being added have different numbers of members, the result will be of a length determined by the longer vector:

> u = c(10, 20, 30)
> v = c(1, 2, 3, 4, 5, 6, 7, 8, 9)
> u + v
[1] 11 22 33 14 25 36 17 28 39

Retrieving from Vectors

To extract members from a vector, you can use indexing within square brackets [ ], like [position]:

> s = c("aa", "bb", "cc", "dd", "ee")
> s[3]  # Retrieve the value of the third member and output it
[1] "cc"

If you precede the index with a negative sign, such as [-3], it means you want to extract all members except the third one:

> s[-3]
[1] "aa" "bb" "dd" "ee"

If the index is out of the vector's length, it will result in an error:

> s[10]
[1] NA

[Updating...]

تمت ترجمة هذه المشاركة باستخدام ChatGPT، يرجى تزويدنا بتعليقاتكم إذا كانت هناك أي حذف أو إهمال.