|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
#crossprod
دستوری که یک ماتریس دلخواه را از چپ و راست در ترانهاده اش ضرب میکند

crossprod() function returns matrix cross-product.

crossprod(x, y = NULL)
tcrossprod(x, y = NULL)


x: numeric matrix
y: numeric matrix, if y=NULL, y is the same as x
...

> x <- matrix(1:9,3,3)
> x

[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9


> crossprod(x)
>t(x)%*%x
[,1] [,2] [,3]
[1,] 14 32 50
[2,] 32 77 122
[3,] 50 122 194


> tcrossprod(x)
x%*%t(x)
[,1] [,2] [,3]
[1,] 66 78 90
[2,] 78 93 108
[3,] 90 108 126

@R_Experts
#which

which() function gives the TRUE indices of a logical object, allowing for array indices.

which(x, arr.ind = FALSE, useNames = TRUE)
arrayInd(ind, .dim, .dimnames = NULL, useNames = FALSE)


x: logical vector or array. NAs are allowed and omitted (treated as if FALSE)
arr.ind: logical; should array indices be returned when x is an array?
ind: integer-valued index vector, as resulting from which(x)
.dim: integer vector
.dimnames: optional list of character dimnames(.), of which only .dimnames[[1]] is used
useNames: logical indicating if the value of arrayInd() should have (non-null) dimnames at all


> which(letters=="h")

[1] 8


> BOD

Time demand
1 1 8.3
2 2 10.3
3 3 19.0
4 4 16.0
5 5 15.6
6 7 19.8


> which(BOD$demand == 16)

[1] 4


> x <- matrix(1:9,3,3)
> x

[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9


> which(x %% 3 == 0, arr.ind=TRUE)

row col
[1,] 3 1
[2,] 3 2
[3,] 3 3


> which(x %% 3 == 0, arr.ind=FALSE)

[1] 3 6 9


@R_Experts
#R_Experts

vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c("COL1","COL2","COL3")
row.names <- c("ROW1","ROW2","ROW3")
matrix.names <- c("Matrix1","Matrix2")

#R_Experts:#Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names,
matrix.names))
print(result)

#R_Experts

👆👆👆👆👆

@R_Experts
#R_Date_&_Time_Functions
در این نرم افزار چندین نوع #تاریخ و #زمان وحود دارد که در تابع مختلف موجود می باشند .

data()

تابعی است که تاریخ وزمان را به صورت یک رشته کاراکتر باز میگرداند .

 Sys.Date() 

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

Sys.time()

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

#نکته :کلاس هر یک از این توابع مختلف است


@R_Experts
#ساختار_کلی_تابع

ساختار کلی یک تابع به صورت شکل بالا است.

.
@R_Exper
#نکته_در_مورد_تابع

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

2.ما متغیرهای های سراسری و متغیر های محلی داریم
به متغیرهایی که خارج از تابع (خارج از براکت های تابع) اورده می شوند متغیرهای سراسری گفته میشوند که هم در داخل و هم خارج تابع از تابع میتوان از ان استفاده کرد

ولی متغیرهایی که داخل تابع تعریف میشوند متغیرهای محلی نامیده میشوند و فقط در داخل تابع قابل استفاده هستند

@R_Experts

3.دستور
return()


فقط قادر به نمایش یک خروجی هست در صورتی که بخواهیم که تابع ما بیش از یک خروجی داشته باشد باید متغیر ها را در یک لیست قرار دهیم و سپس از دستور
return(list())

استفاده کنیم

@R_Experts

4. یک تابع را می توان در خود تابع نیز استاده کرد

@R_Experts

5. وقتی در ارگومان ورودی یک عدد خاصی قرار می هیم بدین معنی است اگر این ارگومان را کاربر وارد نکرد همان مقدار قرار بدهد (مقدار پیش فرض تابع قرار می دهد)

@R_Experts
#تمرین_4

تابعی بنویسید که یک بردار را بگیرد و برای ان میانیگن حسابی و هندسی و هار مونیک ("☺️☺️☺️ دو ستانی که علاقه مند هستند می تواند میانگین پیراسته را نیز محاسبه نمایند☻☻☻") را حساب کند و سپس عمل مقایسه را انجام دهد و هر سه مانگین را در خروجی نشان دهد و علاو بر ان بزرگترین میانگین ها را نیز در خزوجی برای ما مشخص نمیاد


_____________________________________________________

جواب را به یکی از ای دی های زیر ارسال نمایید

@Analyst20
@javad_vhd
@hamedrezaei2

در نهایت از این که با ارسال جواب ما را به ادامه کارمان دلگرم می کنید سپاس گذاریم

با تشکر 🙏🌷🌸
https://telegram.me/R_Experts
#جواب_تمرین_2
x<-rnorm(1000)

x

y<-matrix(x,10,100)

y

vv<-rep(NA,100)

vv

for(i in 1:100){

vv[i]<-var(y[ ,i])

i=i+1

}

vv

yy<-matrix(vv,100,1)

yy

s=0

for(i in 1:100){

for(k in i:100){

if (yy[i,1] > yy[k,1]){

s=s+1}

else{s=s

}

k=k+1

}

i=i+1

}

s


@R_Experts
#Example

> set.seed(123)

> rnorm(4)

[1] -0.56047565 -0.23017749  1.55870831  0.07050839

> rnorm(4)

[1]  0.1292877  1.7150650  0.4609162 -1.2650612

> set.seed(123)

> rnorm(4)

[1] -0.56047565 -0.23017749  1.55870831  0.07050839


> sample(1:6, 10, replace=TRUE)

 [1] 2 2 5 3 5 3 5 6 3 5

> set.seed(1)

> sample(1:6, 10, replace=TRUE)

 [1] 2 3 4 6 2 6 6 4 4 1

> sample(1:6, 10, replace=TRUE)

 [1] 2 2 5 3 5 3 5 6 3 5

> set.seed(1)

> sample(1:6, 10, replace=TRUE)

 [1] 2 3 4 6 2 6 6 4 4 1



> set.seed(123)

> index <- sample(1:nrow(iris), 5)

> index

[1] 44 119 62 133 142

> iris[index, ]

  Sepal.Length Sepal.Width Petal.Length Petal.Width  Species

44      5.0     3.5     1.6     0.6   setosa

119     7.7     2.6     6.9     2.3 virginica

62      5.9     3.0     4.2     1.5 versicolor

133     6.4     2.8     5.6     2.2 virginica

142     6.9     3.1     5.1     2.3 virginica





R> sample(LETTERS, 5)
[1] "K" "N" "R" "Z" "G"
R> sample(LETTERS, 5)
[1] "L" "P" "J" "E" "D"
R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"


@R_Experts
#جواب_تمرین_5

از دیدگاه @R_Experts

تنها نکته ای که دوستان عزیز به اون توجه نداشتند

در تابع نویسی ما کلیه حالات را باید در نظر بگیریم

استفاده از گزاره منطقی آیا ورودی کاربر یک ماتریس است یا نه؟

میتواند مهم باشد


mytrans <- function(x) {
if (!is.matrix(x)) {
warning("argument is not a matrix: returning NA")
return(NA_real_)
}
y <- matrix(1, nrow=ncol(x), ncol=nrow(x))
for (i in 1:nrow(x)) {
for (j in 1:ncol(x)) {
y[j,i] <- x[i,j]
}
}
return(y)
}

# try it
z <- matrix(1:10, nrow=5, ncol=2)
z
tz <- mytrans(z)
tz



@R_Experts
#write
با استفاده از این دستور به جای read
میتوان داده های تولیدی را ذخیره کرد اگر شما دایرکتوری تعریف کرده باشید فایل مورد نظر در انجا
در غیر این صورت
به صورت
پیش فرض در Document
سیستم شما دخیره میشود

@R_Experts
#Example

#install.packages("rngWELL")

#install.packages("randtoolbox")

library(rngWELL)

library(randtoolbox)

halt=halton(10,dim=1)

halt

write.csv(halt,"halt.csv")

در اخر Document سیستمونتون را چک و فایل halt با فرمت .csv رو ببینید

@R_Experts