متغیرها فضایی با نام مشخص در حافظه فراهم میکنند که برنامههای ما میتوانند با آن کار کنند. یک متغیر در زبان R میتواند یک بردار اتمی، گروهی از بردارهای اتمی یا ترکیبی از چندین شیء R را ذخیره کند. نام معتبر یک متغیر شامل حروف، اعداد و کاراکترهای نقطه (.) یا زیرخط (_) است. نام متغیر با یک حرف یا نقطه آغاز میشود، به شرطی که نقطه بلافاصله با عدد دنبال نشود.
نام متغیر | اعتبار | دلیل |
---|---|---|
var_name2. | معتبر | شامل حروف، اعداد، نقطه و زیرخط است |
var_name% | نامعتبر | شامل کاراکتر ‘%’ است؛ فقط نقطه (.) و زیرخط (_) مجاز هستند |
2var_name | نامعتبر | با عدد شروع شده است |
.var_name, var.name |
معتبر | میتواند با نقطه (.) شروع شود، اما نقطه نباید بلافاصله با عدد دنبال شود |
.2var_name | نامعتبر | نقطه شروع شده و بلافاصله عدد آمده است |
_var_name | نامعتبر | با زیرخط شروع شده که مجاز نیست |
مقداردهی متغیر ها در R
میتوان به متغیرها مقدار داد با استفاده از عملگرهای مساوی (=)، جهتی چپ (<-) و جهتی راست (->). مقادیر متغیرها را میتوان با توابع print()
یا cat()
نمایش داد. تابع cat()
چندین مورد را به یک خروجی پیوسته تبدیل میکند.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# اختصاص مقدار با عملگر مساوی var.1 = c(0,1,2,3) # اختصاص مقدار با عملگر جهتی چپ var.2 <- c("learn","R") # اختصاص مقدار با عملگر جهتی راست c(TRUE,1) -> var.3 print(var.1) cat ("var.1 is ", var.1 ,"\n") cat ("var.2 is ", var.2 ,"\n") cat ("var.3 is ", var.3 ,"\n") |
1 2 3 4 |
[1] 0 1 2 3 var.1 is 0 1 2 3 var.2 is learn R var.3 is 1 1 |
نکته: بردار c(TRUE,1)
شامل ترکیبی از کلاس منطقی (logical) و عددی (numeric) است. بنابراین کلاس منطقی به عددی تبدیل میشود و مقدار TRUE
به 1 تبدیل میشود.
نوع دادهای یک متغیر
در R، خود متغیر از پیش با نوع داده مشخص نمیشود؛ بلکه نوع داده آن براساس R – object که به آن اختصاص داده میشود تعیین میشود. به همین دلیل، R به عنوان یک زبان با نوعدهی پویا (dynamically typed) شناخته میشود، به این معنا که میتوان نوع داده یک متغیر را در طول برنامه بارها تغییر داد.
1 2 3 4 5 6 7 8 |
var_x <- "Hello" cat("The class of var_x is ",class(var_x),"\n") var_x <- 34.5 cat(" Now the class of var_x is ",class(var_x),"\n") var_x <- 27L cat(" Next the class of var_x becomes ",class(var_x),"\n") |
1 2 3 |
The class of var_x is character Now the class of var_x is numeric Next the class of var_x becomes integer |
پیدا کردن متغیرها در R
برای مشاهده تمامی متغیرهای موجود در workspace از تابع ls()
استفاده میکنیم. این تابع همچنین میتواند از الگوها (patterns) برای فیلتر کردن نام متغیرها استفاده کند.
1 |
print(ls()) |
1 2 3 |
[1] "my var" "my_new_var" "my_var" "var.1" [5] "var.2" "var.3" "var.name" "var_name2." [9] "var_x" "varname" |
نکته: این خروجی مثال است و بستگی به متغیرهای تعریف شده در محیط شما دارد.
میتوان متغیرهایی که با یک الگوی مشخص شروع میشوند را فیلتر کرد:
1 2 |
# لیست متغیرهایی که با "var" شروع میشوند print(ls(pattern = "var")) |
1 2 3 |
[1] "my var" "my_new_var" "my_var" "var.1" [5] "var.2" "var.3" "var.name" "var_name2." [9] "var_x" "varname" |
متغیرهایی که با نقطه (.) شروع میشوند به طور پیشفرض مخفی هستند. برای نمایش آنها میتوان از آرگومان all.names = TRUE
استفاده کرد:
1 |
print(ls(all.name = TRUE)) |
1 2 3 |
[1] ".cars" ".Random.seed" ".var_name" ".varname" ".varname2" [6] "my var" "my_new_var" "my_var" "var.1" "var.2" [11]"var.3" "var.name" "var_name2." "var_x" |
حذف متغیرها
برای حذف متغیرها میتوان از تابع rm()
استفاده کرد. در مثال زیر، متغیر var.3
حذف شده است و تلاش برای چاپ آن باعث ایجاد خطا میشود:
1 2 |
rm(var.3) print(var.3) |
1 2 |
[1] "var.3" Error in print(var.3) : object 'var.3' not found |
برای حذف تمامی متغیرها میتوان از ترکیب توابع rm()
و ls()
استفاده کرد:
1 2 |
rm(list = ls()) print(ls()) |
1 |
character(0) |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۵ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس