|R| Experts – Telegram
|R| Experts
1.05K subscribers
376 photos
35 videos
58 files
205 links
@R_Experts
🔴آمار علم جان بخشیدن به داده‌هاست.
🔷ارتباط با ما
@iamrezaei
لینک یوتیوب و اینستاگرام و ویرگول:
https://zil.ink/expertstv
Download Telegram
#تمرين_٢
برنامه اي بنويسيد كه ١٠٠٠ عدد تصادفي از توزيع دلخواه
"rnorm(1000)"
بگيرد و انها را در ماتريسي

10(row)*100(col)
قرار داده و واريانس
var( )

هر ستون را محاسبه

و انها را در خروجي در يك ماتريس

100(row)*1
قرار دهد
سپس با مقايسه هر كدام از درايه هاي ماتريس "همه درايه ها " اگر
ai1<aj1
عدد صفر را تخصيص و اگر
ai1>aj1
بود عدد 1 را تخصيص دهد
"ترتيب قرار گيري مهم است يعني اينكه
a11,a21
a21,a11
متفاوت است و هر دو مقايسه بايد صورت گيرد،"
و پس از پايان مجموع اين اعداد را در يك شي دخيره كند.

جواب تمرين در صورتي كه جواب صحيح ارسال شود در كانال گذاشته ميشود

@Analyst20
@javad_vhd
@hamedrezaei2

با تشكر 💎🌷💎

https://telegram.me/R_Experts
#سرگرمی

با دستور ساده زیر می توان #رنگین_کمان کشید


n <- 2000⁨
pie(rep(1,n ),labels = "",border = NA,col = rainbow(n),main = " R_Experts")


@R_Experts
#ginv( )
تابعی در پکیج
MASS
برای محاسبه ی معکوس ماتریس به کار میرود که
معکوس تعمیم یافته هست و زمانی که ماتریس مربعی نباشد میتوان از این دستور استفاده کرد و معکوس ماتریس را بدست اورد
#Example

dat1 <- c(3,4,5,2,1,3,6,5,4)
matrix1 <- matrix(dat1, nrow = 3, ncol = 3, byrow = TRUE)
matrix1

[,1] [,2] [,3]
[1,] 3 4 5
[2,] 2 1 3
[3,] 6 5 4


library(MASS)
ginv(matrix1)

[,1] [,2] [,3]
[1,] -0.4074074 0.3333333 0.25925926
[2,] 0.3703704 -0.6666667 0.03703704
[3,] 0.1481481 0.3333333 -0.18518519
#مقاذیر_ویژه_بردارهای_ویژه
در مثال قبل :
eigen(matrix1)


$values

[1] 11.238947 -2.088872 -1.150075


$vectors

           [,1]       [,2]       [,3]

[1,] -0.6017346 -0.3458537 -0.4307244

[2,] -0.3305706 -0.5288292  0.8445517

[3,] -0.7270754  0.7750644 -0.3181336


@R_Experts
#Example_2
> A <- matrix(c(2,3,-2,1,2,2),3,2)
> A

[,1] [,2]
[1,] 2 1
[2,] 3 2
[3,] -2 2



> is.matrix(A)

[1] TRUE

> is.vector(A)

[1] FALSE

is.matrix( )
is.vector( )

گزاره هاي منطقي هستند
كه ارزش درست يا نادرست ميگيرند.
@R_EXperts
#Example_3
> A = matrix( 
+ c(2, 4, 3, 1, 5, 7), # the data elements
+ nrow=2, # number of rows
+ ncol=3, # number of columns
+ byrow = TRUE) # fill matrix by rows

> A # print the matrix
[,1] [,2] [,3]
[1,] 2 4 3
[2,] 1 5 7
> A[2, 3] # element at 2nd row, 3rd column
[1] 7
> A[2, ] # the 2nd row
[1] 1 5 7
> A[ ,3] # the 3rd column
[1] 3 7
> A[ ,c(1,3)] # the 1st and 3rd columns
[,1] [,2]
[1,] 2 3
[2,] 1 7
> dimnames(A) = list(
+ c("row1", "row2"), # row names
+ c("col1", "col2", "col3")) # column names

> A # print A
col1 col2 col3
row1 2 4 3
row2 1 5 7

> A["row2", "col3"] # element at 2nd row, 3rd column
[1] 7



@R_Experts
#cbind
ترکیب ستونی کنار یکدیگر

> x = cbind(c(10, 20), c("[]", "[]"), c("[[1,2]]","[[1,3]]"))

> x

     [,1] [,2] [,3]     

[1,] "10" "[]" "[[1,2]]"

[2,] "20" "[]" "[[1,3]]"


@R_Experts
#rbind
ترکیب سطری کنار یکدیگر
> x = rbind(c(10, "[]", "[[1,2]]"), c(20, "[]", "[[1,3]]"))
> x
[,1] [,2] [,3]
[1,] "10" "[]" "[[1,2]]"
[2,] "20" "[]" "[[1,3]]"


@R_Experts
#practice_3👆👆👆
#chol
تجزیه چولسکی

#Example

> x <- matrix(c(8,1,1,4),2,2)
> x

[,1] [,2]
[1,] 8 1
[2,] 1 4


> y <- chol(x)
> y

[,1] [,2]
[1,] 2.828427 0.3535534
[2,] 0.000000 1.9685020

> x <- matrix(rep(1:4),2,2)
> x

[,1] [,2]
[1,] 1 3
[2,] 2 4


> y <- chol(x)

Error in chol.default(x) :
the leading minor of order 2 is not positive definite



@R_Experts
#rbind & #cbind
در صورتی که بخواهیم با وصل کردن چند بردار یا چند ماتریس به هم ماتریس یا بردار جدید بسازیم از توابع

#rbind()
و
#cbind()
استفاده میکنیم. تابع
#rbind()
بردار ها یا ماتریس ها را به صورت سطری کنار هم قرار می دهد و تابع
#cbind()
این کار را به صورت ستونی انجام می دهد.

@R_Experts
|R| Experts
#rbind & #cbind در صورتی که بخواهیم با وصل کردن چند بردار یا چند ماتریس به هم ماتریس یا بردار جدید بسازیم از توابع #rbind() و #cbind() استفاده میکنیم. تابع #rbind() بردار ها یا ماتریس ها را به صورت سطری کنار هم قرار می دهد و تابع #cbind() این کار را به…
#تذکر
اگر طول بردار ها با هم متفاوت باشد نرم افزار هشدار میدهد
ولی باز عملیات را اجرا میکند در حالی که بردار کوچکتر

را باز تکرار میکند و در کنار بردار بزرگتر قرار می هد


@R_Experts
#لیست_ها

یک لیست مجموعه منظم از اشیا است که اشیا را مولفه های آن لیست می نامیم

مولفه های یک لیست لزومی ندارد هم نوع و یا هم اندازه باشندبه عبارتی برای یک لیست مس توانیم

مولفه هایی از قبیل ماتریس بردارهایی از اعداد یا کارکترها و . . . را داشته باشیم

@R_Experts

برای ساختن یک لیست از تابع

list()

استفاده میکنیم ئر این تابع نام هر مولفه را وارد کرده و بعد از علامت مساوی

شی مورد نظر را وارد می کنیم

@R_Experts
#دیتا_فریم_ها

دیتا فریم ها از لحاظ ساختار شباهت زیادی به ماتریس ها دارند .یک دیتا فریم را می توان ماتریسی

در نظر گرفت که ستون های ان بردار هایی با ساختار های مختلف هستند

یک دیتا فریم در واقع لیستی از بردارهای هم اندازه و لا ساختار های متفاوت است
@R_Experts
برای ساختن یک دیتا فریم از تابع

data.frame()

استفاده میشود .دراین تابع می بایست نام مورد نظر برای هر ستون را به همراه بردار

شامل داده های ان ستون وارد کنیم

@R_Experts
ابتدا پکیج MASS
را نصب و فراخوانی کنید

> library(MASS)      # load the MASS package

> painters 

              Composition Drawing Colour Expression School 

Da Udine               10       8     16          3      A 

Da Vinci               15      16      4         14      A 

Del Piombo              8      13     16          7      A 

Del Sarto              12      16      9          8      A 

Fr. Penni               0      15      8          0      A 

Guilio Romano          15      16      4         14      A 


این داده ها مربوط به نقاشان کلاسیک قرن 18 میباشند که در رسته های ترکیب بندی ،رنگ بندی،... دسته بندی شده اند

> painters$School 

 [1] A A A A A A A A A A B B B B B B C C C C C C D D D D 

[27] D D D D D D E E E E E E E F F F F G G G G G G G H H 

[53] H H 

Levels: A B C D E F G H 


با این دستور میتوانیم مشاهده کنیم که سطح جایی که اموزش دیدن چگونه است
که در 8 سطح میباشد

@R_Experts
> school = painters$School      # the painter schools 
> school.freq = table(school) # apply the table function
> school.freq
school
A B C D E F G H
10 6 6 10 7 4 7 4
> cbind(school.freq)
school.freq
A 10
B 6
C 6
D 10
E 7
F 4
G 7
H 4


همان طور که مشاهده میکنید جدول فراوانی بین تعداد نقاشان و سطح جایی که اموزش دیدن رو اوردیم و به یک جدول تبدیل کردیم
و این جدول رو سپس ستونی نمودیم
مثلا
A 10
نشان دهنده ی این است که در سطح اموزش A
10 نفر اموزش دیدند


@R_Experts