#برابر_قرار_دادن_اعداد_اعشاری
نکته ای که بسیار مهم در نرم افزار 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
#list
برای اینکه ترکیبی از داده ها ،بردار،دنباله،عدد،کاراکتر و... در یک جا قابل دسترسی باشند از این تابع استفاده میکنیم
list( )
@R_Experts
برای اینکه ترکیبی از داده ها ،بردار،دنباله،عدد،کاراکتر و... در یک جا قابل دسترسی باشند از این تابع استفاده میکنیم
list( )
x1 <- list(c(1, 2), c(3, 4))
x2 <- list(list(1, 2), list(3, 4))
x3 <- list(1, list(2, list(3)))
@R_Experts
#Example
در کد زیر
a= c(2, 3, 5)
b = c("aa", "bb", "cc", "dd", "ee")
c = c(TRUE, FALSE, TRUE, FALSE, FALSE)
x = list(a, b, c, 3)
x[2]
x[c(2,4)]
x[[2]]
x[[2]][1]
سه بردار
a,b,c
عددی ،کاراکتر،منطقی را داریم
و در تابع لیست ذخیره و به
x
تخصیص داده ایم
x[2]
در تابع لیست بردار دوم را فراخوانی میکند
x[c(2,4)]
بردار دوم وعنصر چهارم را فراخوانی میکند
x[[2]]
تمام عناصر بردار دوم در لیست را فراخوانی
x[[2]][1]
از بردار دوم لیست عنصر اول را فراخوانی میکند
@R_Experts
در کد زیر
a= c(2, 3, 5)
b = c("aa", "bb", "cc", "dd", "ee")
c = c(TRUE, FALSE, TRUE, FALSE, FALSE)
x = list(a, b, c, 3)
x[2]
x[c(2,4)]
x[[2]]
x[[2]][1]
سه بردار
a,b,c
عددی ،کاراکتر،منطقی را داریم
و در تابع لیست ذخیره و به
x
تخصیص داده ایم
x[2]
در تابع لیست بردار دوم را فراخوانی میکند
x[c(2,4)]
بردار دوم وعنصر چهارم را فراخوانی میکند
x[[2]]
تمام عناصر بردار دوم در لیست را فراخوانی
x[[2]][1]
از بردار دوم لیست عنصر اول را فراخوانی میکند
@R_Experts
#$
Dollar:
اگر به هر یک از عناصر لیست نامی تخصیص دهیم با $ فراخوانی میشوند
اگه اسمی تخصیص ندهیم و $ را به کار بریم با
مواجه میشویم
@R_Experts
Dollar:
اگر به هر یک از عناصر لیست نامی تخصیص دهیم با $ فراخوانی میشوند
اگه اسمی تخصیص ندهیم و $ را به کار بریم با
NULL
مواجه میشویم
#R_Experts
a= c(2, 3, 5)
b = c("aa", "bb", "cc", "dd", "ee") c = c(TRUE, FALSE, TRUE, FALSE, FALSE)
x = list(vec1=a,vec2= b,vec3= c,Jenabkhan= 3)
x$vec1
x$vec2
x$vec3
x$Jenabkhan
@R_Experts
#Example_1
تابع
names(" ")
برای تخصیص نام به درایه های لیست به کار رفته و ماتریسی در درایه دوم تعریف کردیم که امروز اموزش داده میشود
@R_Experts
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2), list("green",12.3))# Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")# Show the list.
print(list_data)
$`1st_Quarter
[1] "Jan" "Feb" "Mar"
$A_Matrix
[,1] [,2] [,3]
[1,] 3 5 -2
[2,] 9 1 8
$A_Inner_list
$A_Inner_list[[1]]
[1] "green"
$A_Inner_list[[2]]
[1] 12.3
تابع
names(" ")
برای تخصیص نام به درایه های لیست به کار رفته و ماتریسی در درایه دوم تعریف کردیم که امروز اموزش داده میشود
@R_Experts
#Example_2
merged.list
دو لیست را کنار یکدیگر قرار میدهد و در یک لیست ذخیره میکند
# Create two lists.
list1 <- list(1,2,3)
list2 <- list("Sun","Mon","Tue")# Merge the two lists.
merged.list <- c(list1,list2)
# Print the merged list.
print(merged.list)
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] "Sun"
[[5]]
[1] "Mon"
[[6]]
[1] "Tue"
merged.list
دو لیست را کنار یکدیگر قرار میدهد و در یک لیست ذخیره میکند
#Example_3
تابع
unlist
لیست را به ماهیت اولیه اش برمیگرداند
@R_Experts
# Create lists.
list1 <- list(1:5)
print(list1)
list2 <-list(10:14)
print(list2)
# Convert the lists to vectors.
v1 <- unlist(list1)
v2 <- unlist(list2)
print(v1)
print(v2)
# Now add the vectors
result <- v1+v2
print(result)
[[1]]
[1] 1 2 3 4 5
[[1]]
[1] 10 11 12 13 14
[1] 1 2 3 4 5
[1] 10 11 12 13 14
[1] 11 13 15 17 19
تابع
unlist
لیست را به ماهیت اولیه اش برمیگرداند
@R_Experts