بشكل عام، أثناء القيام بالبرمجة بأي لغة برمجة، تحتاج إلى استخدام متغيرات مختلفة لتخزين معلومات متنوعة. المتغيرات ليست سوى مواقع ذاكرة محجوزة لتخزين القيم. هذا يعني أنه عند إنشاء متغير فإنك تحجز بعض المساحة في الذاكرة.
قد ترغب في تخزين معلومات من أنواع مختلفة من البيانات مثل الأحرف، والأحرف العريضة، والعدد الصحيح، والنقطة العائمة، والنقطة العائمة المزدوجة، والمنطقية وما إلى ذلك. واستنادًا إلى نوع بيانات المتغير، يقوم نظام التشغيل بتخصيص الذاكرة ويقرر ما يمكن تخزينه في الذاكرة المحجوزة.
على عكس لغات البرمجة الأخرى مثل C وjava في R، لم يتم الإعلان عن المتغيرات كنوع من أنواع البيانات. يتم تعيين المتغيرات باستخدام كائنات R ويصبح نوع بيانات كائن R هو نوع بيانات المتغير. هناك أنواع عديدة من كائنات R. تلك المستخدمة بشكل متكرر هي (Vectors, Lists, Matrices, Arrays, Factors, and Data Frames)
أبسط هذه الكائنات هو vector object وهناك ستة أنواع من البيانات لهذه الـ atomic vectors ، والتي يطلق عليها أيضًا ستة فئات من المتجهات. كائنات R الأخرى مبنية على atomic vectors.
في برمجة R، أنواع البيانات الأساسية هي كائنات R التي تسمى المتجهات والتي تحتوي على عناصر من فئات مختلفة كما هو موضح أعلاه. يرجى ملاحظة أن عدد الفئات في R لا يقتصر على الأنواع الستة المذكورة أعلاه فقط. على سبيل المثال، يمكننا استخدام العديد من الـ atomic vectors وإنشاء مصفوفة سيصبح صنفها مصفوفة.
Vectors
عندما تريد إنشاء vector بأكثر من عنصر واحد، يجب عليك استخدام الدالة c() والتي تعني دمج العناصر في vector.
# Create a vector.
apple <- c('red','green',"yellow")
print(apple)
# Get the class of the vector.
print(class(apple))
عندما نقوم بتنفيذ الكود أعلاه، فإنه ينتج النتيجة التالية –
[1] "red" "green" "yellow"
[1] "character"
Lists
القائمة list عبارة عن كائن R يمكن أن تحتوي على العديد من أنواع العناصر المختلفة بداخلها مثل المتجهات vectors والوظائف functions وحتى قائمة list أخرى بداخلها
# Create a list.
list1 <- list(c(2,5,3),21.3,sin)
# Print the list.
print(list1)
عندما نقوم بتنفيذ الكود أعلاه، فإنه ينتج النتيجة التالية –
[[1]]
[1] 2 5 3
[[2]]
[1] 21.3
[[3]]
function (x) .Primitive("sin")
Matrices
المصفوفة matrix هي مجموعة بيانات مستطيلة ثنائية الأبعاد. يمكن إنشاؤه باستخدام مدخلات متجهة لوظيفة المصفوفة.
# Create a matrix.
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)
عندما نقوم بتنفيذ الكود أعلاه، فإنه ينتج النتيجة التالية –
[,1] [,2] [,3]
[1,] "a" "a" "b"
[2,] "c" "b" "a"
Arrays
بينما تقتصر المصفوفات matrices على بعدين، يمكن أن تكون المصفوفات Arrays بأي عدد من الأبعاد. تأخذ دالة المصفوفة سمة قاتمة تقوم بإنشاء العدد المطلوب من البعد. في المثال أدناه، قمنا بإنشاء مصفوفة تحتوي على عنصرين، كل منهما عبارة عن مصفوفات 3×3.
# Create an array.
a <- array(c('green','yellow'),dim = c(3,3,2))
print(a)
عندما نقوم بتنفيذ الكود أعلاه، فإنه ينتج النتيجة التالية –
, , 1
[,1] [,2] [,3]
[1,] "green" "yellow" "green"
[2,] "yellow" "green" "yellow"
[3,] "green" "yellow" "green"
, , 2
[,1] [,2] [,3]
[1,] "yellow" "green" "yellow"
[2,] "green" "yellow" "green"
[3,] "yellow" "green" "yellow"
Factors
العوامل Factors هي كائنات r التي يتم إنشاؤها باستخدام vector. يقوم بتخزين المتجه مع القيم المميزة للعناصر الموجودة في المتجه كتسميات. تكون التسميات دائمًا عبارة عن أحرف بغض النظر عما إذا كانت رقمية أو حرفية أو منطقية وما إلى ذلك في متجه الإدخال. وهي مفيدة في النمذجة الإحصائية.
يتم إنشاء العوامل Factors باستخدام الدالة Factor(). وظائف nlevels تعطي عدد المستويات.
# Create a vector.
apple_colors <- c('green','green','yellow','red','red','red','green')
# Create a factor object.
factor_apple <- factor(apple_colors)
# Print the factor.
print(factor_apple)
print(nlevels(factor_apple))
عندما نقوم بتنفيذ الكود أعلاه، فإنه ينتج النتيجة التالية –
[1] green green yellow red red red green
Levels: green red yellow
[1] 3
Data Frames
إطارات البيانات Data frames هي كائنات بيانات جدولية. على عكس المصفوفة في إطار البيانات، يمكن أن يحتوي كل عمود على أوضاع مختلفة من البيانات. يمكن أن يكون العمود الأول رقميًا بينما يمكن أن يكون العمود الثاني حرفيًا والعمود الثالث منطقيًا. إنها قائمة من المتجهات ذات الطول المتساوي.
يتم إنشاء إطارات البيانات باستخدام الدالة data.frame().
# Create the data frame.
BMI <- data.frame(
gender = c("Male", "Male","Female"),
height = c(152, 171.5, 165),
weight = c(81,93, 78),
Age = c(42,38,26)
)
print(BMI)
عندما نقوم بتنفيذ الكود أعلاه، فإنه ينتج النتيجة التالية –
gender height weight Age
1 Male 152.0 81 42
2 Male 171.5 93 38
3 Female 165.0 78 26