آموزش انواع داده ها در برنامه نویسی با R
عموماً، هنگام برنامه نویسی در هر زبانی؛ شما باید از انواع متغیرها استفاده کنید تا بتوانید اطلاعات متفاوت را ذخیره سازی نمایید. متغیرها خود به تنهایی؛ چیزی نیستند اما بخش هایی از حافظه را اشغال می کنند تا مقادیری در آنها ذخیره شود. این امر به آن معنا است که زمانی که شما یک متغیر را ایجاد می کنید، فضایی را در حافظه دستگاه اشغال کرده اید.
ممکن است بخواهید اطلاعات انواع متفاوتی از داده ها مانند کاراکترها، عدد صحیح؛ اعداد ممیزی اعشاری؛ اعداد اعشاری، متغیرهای بولین و غیره را ذخیره سازی کنید. بر اساس انواع داده های متغیر، سیستم عامل حافظه را تخصیص می دهد و تصمیم می گیرد که چه چیزی را می توان در حافظه ی ذخیره شده، نگهداری کرد.
بر خلاف دیگر زبان های برنامه نویسی مانند C و جاوا؛ در R متغیرها به عنوان نوعی از داده ها تعریف نمی شود. متغیرها با اشیاء R تخصیص داده می شود و انواع داده های اشیاء R- به انواع داده های متغیر تبدیل می شوند. انواع بسیاری از اشیاء R وجود دارد. آنهایی که مکرراً استفاده می شوند عبارتند از:
- بردارها
- لیست ها
- ماتریس ها
- آرایه ها
- فاکتوها
- چارچوب های داده
ساده ترین این اشیاء؛ شیء برداری است و شش نوع داده از این وکتورهای بسیار ریز وجود دارد که به عنوان شش کلاس وکتورها نیز نامیده می شوند. دیگر اشیاء R بر روی وکتورها ساخته شده اند.
نوع داده | مثال | محقق شدن |
منطقی | TRUE (صحیح)؛ FALSE (غلط) |
خروجی این کد به صورت زیر است:
|
عددی |
۱۲٫۳, ۵, ۹۹۹ |
خروجی این کد به صورت زیر می باشد:
|
عدد صحیح |
۲L, 34L, 0L |
خروجی این کد به صورت زیر است:
|
مختلط |
۳+۲i |
خروجی این کد به صورت زیر می باشد:
|
کاراکتر |
“a” , “good”, “TTUE”, “۲۳٫۴” |
خروجی کد بالا به صورت زیر است:
|
خام | “Hello” به صورت
۴۸ ۶۵ ۶c 6c 6f ذخیره می شود. |
خروجی بالا به صورت زیر می آید:
|
در برنامه نویسی R، انواع داده های بسیار پایه ای؛ اشیاء R- هستند و وکتور نامیده می شود که همان طور که در بالا نشان داده شد؛ عناصر کلاس های مختلف را نگه داری می کند. لطفاً توجه داشته باشید که در R تعداد کلاس ها فقط به شش نوع بالا محدود نمی شوند. برای مثال، می توانیم از وکتورهای بسیاری استفاده کنیم و یک آرایه ایجاد کنیم که کلاس آن به آرایه تبدیل می شود.
وکتورها
زمانی که می خواهید وکتورهایی با بیشتر از یک عنصر ایجاد کنید؛ می توانید از تابع ()c استفاده کنید که به معنی ترکیب کردن عناصر در یک بردار می باشد.
# Create a vector.
apple <- c(‘red’,’green’,”yellow”)
print(apple)
# Get the class of the vector.
print(class(apple))
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر ایجاد می شود:
[۱] “red” “green” “yellow”
[۱] “character”
لیست ها
یک لیست در واقع یک شیء R می باشد که انواع متفاوتی از عناصر را درون خودش شامل می شود. در واقع عناصر داخل لیست را می توان بردارها، توابع و حتی یک لیست دیگر درون آن قرار داد.
# Create a list.
list1 <- list(c(2,5,3),21.3,sin)
# Print the list.
print(list1)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:
[[۱]]
[۱] ۲ ۵ ۳
پایگاه داده SQL Server رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی بلافاصله ... دانلود:
[[۲]]
[۱] ۲۱٫۳
[[۳]]
function (x) .Primitive(“sin”)
ماتریس ها
یک ماتریس؛ در واقع یک مجموعه داده مستطیل شکل است. ماتریس را می توان با استفاده از یک وکتور ایجاد کرد که به عنوان ورودی برای تابع ماتریس به کار می رود.
# Create a matrix.
M = matrix( c(‘a’,’a’,’b’,’c’,’b’,’a’), nrow = 2, ncol = 3, byrow = TRUE)
print(M)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:
[,۱] [,۲] [,۳]
[۱,] “a” “a” “b”
[۲,] “c” “b” “a”
آرایه ها
در حالی که ماتریس ها به دو بعد محدود می شوند؛ آرایه ها می توانند هر تعداد بعدی داشته باشند. تابع آرایه یک ویژگی دارد که با استفاده از آن می تواند به تعداد دلخواه ابعاد برای آرایه ها ایجاد کند. در مثال زیر، یک آرایه با دو عنصر ایجاد می کنیم که ماتریس های هستند.
# Create an array.
a <- array(c(‘green’,’yellow’),dim = c(3,3,2))
print(a)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:
, , ۱
[,۱] [,۲] [,۳]
[۱,] “green” “yellow” “green”
[۲,] “yellow” “green” “yellow”
[۳,] “green” “yellow” “green”
, , ۲
[,۱] [,۲] [,۳]
[۱,] “yellow” “green” “yellow”
[۲,] “green” “yellow” “green”
[۳,] “yellow” “green” “yellow”
فاکتورها
فاکتورها، اشیاء r- هستند که با استفاده از یک بردار ایجاد می شوند که مقادیر متمایز عناصر در بردار به شکل لیبل مشخص می شوند. این لیبل ها صرف نظر از این که ورودی بردار ها به صورت عددی باشند یا کاراکتری و یا متغیرهای بولین و … همیشه کاراکتر هستند.
فاکتورها با استفاده از تابع ()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))
زمانی که کد بالا را احرا می کنیم؛ نتیجه زیر حاصل می شود:
[۱] green green yellow red red red green
Levels: green red yellow
[۱] ۳
چارچوب های داده
چارچوب های داده، اشیاء داده های جدولی هستند. بر خلاف ماتریس ها، در چارچوب داده؛ هر ستون می تواند شامل مدهای متفاوتی از داده ها باشد. اولین ستون می تواند مقادیر عددی داشته باشد؛ در حالی که دومین ستون می تواند کاراکتری باشد؛ ستون سوم نیز می تواند منطقی باشد. این یک لیست از وکتورها با طول مساوی می باشد.
چارچوب های داده با استفاده از تابع ()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
۱ Male 152.0 81 42
۲ Male 171.5 93 38
۳ Female 165.0 78 26