#if
#دستور_شرطی
دستور شرطی اگر-انگاه
بدین مفهوم که #اگر شرطمون برقرار شد #انگاه دستور جلویی را انجام بده
If(condition){command}#else
#نقیض_شرط
بدین مفهوم که #اگر شرط برقرار نباشد #انگاه دستور مقابلش رو انجام بده
else{command}#مثال_دستور_شرطی
👈دستوری بنوسید که زوج یا فرد بودن متغیر را تعیین کند و در خروجی چاپ کند
x<-10
If(x%%2==0){print("zoj ast")} else{print("fard ast")}@R_Experts
#for
#حلقه
حلقه دستوراتی که برایش نوشته شده را به تعداد تعریف شده تکرار میکند
شکل کلی ان به صورت زیر است:
#مثال_حلقه
مجموع اعداد از یک تا 10 را بنویسید
یا برنامه زیر توان دو اعداد 1:5
را چاپ میکند
مثال فوق رو به چندین روش مختلف میشه انجامش داد حتی با اضافه کردن دستور شرطی که اموزشش رو دادیم
خودتون تمرین کنید و در صورت برخورد با اشکال مطرح كنيد.
@R_Experts
#حلقه
حلقه دستوراتی که برایش نوشته شده را به تعداد تعریف شده تکرار میکند
شکل کلی ان به صورت زیر است:
for(i in 1:n){
دستورات
}#مثال_حلقه
مجموع اعداد از یک تا 10 را بنویسید
rm(list=ls())
s<-0
for(i in 1:10){
s<- s+i
}
s
یا برنامه زیر توان دو اعداد 1:5
را چاپ میکند
n=5
x = rep(0,n)
for (j in 1:n)
{
x[j] = j^2
}
x
مثال فوق رو به چندین روش مختلف میشه انجامش داد حتی با اضافه کردن دستور شرطی که اموزشش رو دادیم
خودتون تمرین کنید و در صورت برخورد با اشکال مطرح كنيد.
@R_Experts
#مثالـحلقهـfor
مجموع اعداد زوج از یک تا n را محاسبه کنید
دستورش به شکل زیر است که در زیر تک تک دستورات رو براتون توضیح میدیم
اولا حلقه اعداد یک تا 100 رو با متغیر i شمارش میکنه بعدش ما یک متغیر برای اینکه مجموع رو تو اون دخیره کنیم معرفی میکنیم (متغیر s) مقدار اولیه s عدد صفر هست که هربار با عدد زوج جمع میشه
این تابع هم خروجیش اعداد 0 و 1 هست که اگر شرط داخلش درست باشه عدد 1 رو میده در غیر اینصورت عدد 0 رو میده
@R_Experts
مجموع اعداد زوج از یک تا n را محاسبه کنید
دستورش به شکل زیر است که در زیر تک تک دستورات رو براتون توضیح میدیم
s<-0
for(i in 1:100){s<-s+I(i%%2==0)*i
}
s
اولا حلقه اعداد یک تا 100 رو با متغیر i شمارش میکنه بعدش ما یک متغیر برای اینکه مجموع رو تو اون دخیره کنیم معرفی میکنیم (متغیر s) مقدار اولیه s عدد صفر هست که هربار با عدد زوج جمع میشه
I()
این تابع هم خروجیش اعداد 0 و 1 هست که اگر شرط داخلش درست باشه عدد 1 رو میده در غیر اینصورت عدد 0 رو میده
@R_Experts
#while
ی نوع حلقه "loop" به حساب میاد ، و تا زمانی که ارزش منطقی اون گزاره داخلی درست باشه این حلقه ادامه داره ،
مثلا
از یک شروع میشه و تا زمانی که از 5 کمتره به مقدار اولیه "1" یکی اضافه میکنه
و با دستور
همه عناصری که داخل این حلقه تولید شدن رو برای ما چاپ میکنه
در داخل حلقه به معنی خارج شدن است
در داخل حلقه به معنی ادامه دادن است
@R_Experts
ی نوع حلقه "loop" به حساب میاد ، و تا زمانی که ارزش منطقی اون گزاره داخلی درست باشه این حلقه ادامه داره ،
مثلا
x <- 1
while(x < 5) {x <- x+1; print(x);}
x
از یک شروع میشه و تا زمانی که از 5 کمتره به مقدار اولیه "1" یکی اضافه میکنه
و با دستور
print( )
همه عناصری که داخل این حلقه تولید شدن رو برای ما چاپ میکنه
#break
در داخل حلقه به معنی خارج شدن است
#next
در داخل حلقه به معنی ادامه دادن است
@R_Experts
مقدار اولیه 2 ، برای کمتر از 7 ها یکی اضافه کن به تعداد کل این اعدادی که تو این شرط صدق میکنند کاراکتر بردار رو چاپ کن :)
@R_Experts
@R_Experts
#NA
به معنی داده گمشده میباشد در سطوح پیشرفته کار با داده گمشده متفاوت است ما در اینجا فقط داه گمشده را در نظر نمیگیریم
در برنامه زیر
دستور
ارزش منطقی داده های بردار
را مشخص میکند
چون این بردار دارای داده گمشده است
نمیتوان کاری روی ان صورت داد از این رو
به حذف داده گمشده اررش درست میدهد
و باعث میشود داده گمشده در نظر گرفته نشود از این رو برداری با 4 عنصر خواهیم داشت.
@R_Experts
به معنی داده گمشده میباشد در سطوح پیشرفته کار با داده گمشده متفاوت است ما در اینجا فقط داه گمشده را در نظر نمیگیریم
در برنامه زیر
دستور
is.na(y)
ارزش منطقی داده های بردار
y
را مشخص میکند
چون این بردار دارای داده گمشده است
نمیتوان کاری روی ان صورت داد از این رو
na.rm=TRUE
به حذف داده گمشده اررش درست میدهد
و باعث میشود داده گمشده در نظر گرفته نشود از این رو برداری با 4 عنصر خواهیم داشت.
@R_Experts
#برابر_قرار_دادن_اعداد_اعشاری
نکته ای که بسیار مهم در نرم افزار R وجود دارد که کمتر دیده ایم از ان یاد شود
ودر مباحثی مانند آنالیز عددی بیشتر رخ می دهد این است که نرم افزار R عدد اعشاری را که از اعمال ریاضی بدست میاد برابر خود ان عدد به دست امده نمی داند وبرای این کار باید از دستور
استفاده کرد.
شاید با ذکر یک #مثال بتوان مفهوم را بهتر درک کرد
@R_Experts
نکته ای که بسیار مهم در نرم افزار R وجود دارد که کمتر دیده ایم از ان یاد شود
ودر مباحثی مانند آنالیز عددی بیشتر رخ می دهد این است که نرم افزار R عدد اعشاری را که از اعمال ریاضی بدست میاد برابر خود ان عدد به دست امده نمی داند وبرای این کار باید از دستور
all.equall()
استفاده کرد.
شاید با ذکر یک #مثال بتوان مفهوم را بهتر درک کرد
@R_Experts
|R| Experts
@R_Experts 👆👆👆👆👆
#توضیح_مثال_👆👆👆👆
همان طور که میبینیم نرم افزار x و y را که هر دو مقدار یکسان 0.1 را دارند برابر و همسان یک دیگر نمیداند زیرا از نظر ان مقدار x یک مقدار تقریبی بود و ممکن است باز هم بعد 0.1 اعداد اعشار دیگر وجود داشته باشند
ولی با دستور
نرم افزار این بار فقط آن تعداد رقم اعشاری که واقعا موجود است را در نظر میگرد
x=0.1
y=0.1
@R_Experts
همان طور که میبینیم نرم افزار x و y را که هر دو مقدار یکسان 0.1 را دارند برابر و همسان یک دیگر نمیداند زیرا از نظر ان مقدار x یک مقدار تقریبی بود و ممکن است باز هم بعد 0.1 اعداد اعشار دیگر وجود داشته باشند
ولی با دستور
all.equal()
نرم افزار این بار فقط آن تعداد رقم اعشاری که واقعا موجود است را در نظر میگرد
x=0.1
y=0.1
@R_Experts
#فراخوانی_اعضای_یک_بردار
برای فراخوانی ویا کار برروی عضویاعضوهایی از یک بردارازعملگر ```“[]" ```استفاده می شود
```X[a]```
```X[-a]```
@R_Experts
برای فراخوانی ویا کار برروی عضویاعضوهایی از یک بردارازعملگر ```“[]" ```استفاده می شود
```X[a]```
```X[-a]```
@R_Experts
#سورعمومی_سور_وجودی
کیا یادشونه اینا؟
یادتون رفته :))
خب ی یادآوری:
سور عمومی: به ازای هر عضوی از یک مجموعه یا به عبارت بهتر همه مقادیر یک مجموعه یک گزاره منطقی درست باشد
سور وجودی:وجود داشته باشد عضوی از یک مجموعه که یک گزاره منطقی به ازای ان برقرار باشد
در دستور اول میگه اگه همه جملات دنباله
بزرگتر از صفر باشند چاپ کن واسم
در دستور دوم میگه اگه جمله ای از دنباله وجود داشته باشه به طوری که گزاره
بر قرار بشه چاپ کن اون 5 هست
@R_Experts
کیا یادشونه اینا؟
یادتون رفته :))
خب ی یادآوری:
سور عمومی: به ازای هر عضوی از یک مجموعه یا به عبارت بهتر همه مقادیر یک مجموعه یک گزاره منطقی درست باشد
سور وجودی:وجود داشته باشد عضوی از یک مجموعه که یک گزاره منطقی به ازای ان برقرار باشد
if(all(1:10>0))
cat("All are positive")if(any(1:10==5))
cat("There is a five")در دستور اول میگه اگه همه جملات دنباله
1:10
بزرگتر از صفر باشند چاپ کن واسم
"All are positive"
در دستور دوم میگه اگه جمله ای از دنباله وجود داشته باشه به طوری که گزاره
==5
بر قرار بشه چاپ کن اون 5 هست
@R_Experts
#switch
switch(Statement,list)
تابعی که بر اساس ان میتوان چندین دستور را کنار یکدیگر قرار داد " ی لیست " و به دلخواه اون هارو فراخوانی کرد
@R_Experts
switch(Statement,list)
تابعی که بر اساس ان میتوان چندین دستور را کنار یکدیگر قرار داد " ی لیست " و به دلخواه اون هارو فراخوانی کرد
switch(2,"red","green","blue")
[1] "green"
> switch(1,"red","green","blue")
[1] "red"
x <- switch(4,"red","green","blue")
> x
NULL
> x <- switch(0,"red","green","blue")
> x
NULL
> switch("color", "color" = "red", "shape" = "square", "length" = 5)
[1] "red"
> switch("length", "color" = "red", "shape" = "square", "length" = 5)
[1] 5
@R_Experts