6.3 بردار ریاضی و آمار

Code
(vec <- c(1.3574, -2.2, 5, 4, -7, 2.55, 1.4, -8))
[1] 1.3574 -2.2000  5.0000  4.0000 -7.0000  2.5500  1.4000 -8.0000
  • گرد کردن مقادیر تا رقم اعشار دلخواه
Code
round(vec, digits = 2)
[1]  1.36 -2.20  5.00  4.00 -7.00  2.55  1.40 -8.00
  • گرد به بالا
Code
ceiling(vec)
[1]  2 -2  5  4 -7  3  2 -8
  • گرد رو پایین
Code
floor(vec)
[1]  1 -3  5  4 -7  2  1 -8
  • قدرمطلق مقادیر

\[\ |x| = \begin{bmatrix} |x_{1}| & |x_{2}| & \dots & |x_{n}| \end{bmatrix} \]

Code
abs(vec)
[1] 1.3574 2.2000 5.0000 4.0000 7.0000 2.5500 1.4000 8.0000
  • جمع

\[\ x + a = \begin{bmatrix} x_{1} + a & x_{2} + a & \dots & x_{n} + a \end{bmatrix} \]

Code
vec + 10
[1] 11.3574  7.8000 15.0000 14.0000  3.0000 12.5500 11.4000  2.0000
  • تفریق

\[\ x - a = \begin{bmatrix} x_{1} - a & x_{2} - a & \dots & x_{n} - a \end{bmatrix} \]

Code
vec - 10
[1]  -8.6426 -12.2000  -5.0000  -6.0000 -17.0000  -7.4500  -8.6000 -18.0000
  • ضرب

\[\ x \times a = \begin{bmatrix} x_{1} \times a & x_{2} \times a & \dots & x_{n} \times a \end{bmatrix} \]

Code
vec * 10
[1]  13.574 -22.000  50.000  40.000 -70.000  25.500  14.000 -80.000
  • تقسیم

\[\ x \div a = \begin{bmatrix} x_{1} \div a & x_{2} \div a & \dots & x_{n} \div a \end{bmatrix} \]

Code
vec / 10
[1]  0.13574 -0.22000  0.50000  0.40000 -0.70000  0.25500  0.14000 -0.80000
  • توان

\[\ x^a = \begin{bmatrix} x_{1}^a & x_{2}^a & \dots & x_{n}^a \end{bmatrix} \]

Code
vec ^ 10
[1] 2.123628e+01 2.655992e+03 9.765625e+06 1.048576e+06
[5] 2.824752e+08 1.162524e+04 2.892547e+01 1.073742e+09
  • جذر

\[\ \sqrt{x} = \begin{bmatrix} \sqrt{x_{1}} & \sqrt{x_{2}} & \dots & \sqrt{x_{n}} \end{bmatrix} \]

Code
sqrt(math)
[1] 1.165075 NaN 2.236068 2.000000 NaN 1.596872 1.183216 NaN
  • تابع نمایی بر مبنای e
Code
exp(vec)
[1] 3.886076e+00 1.108032e-01 1.484132e+02 5.459815e+01
[5] 9.118820e-04 1.280710e+01 4.055200e+00 3.354626e-04
  • لوگاریتم برمبنای دلخواه
Code
log(vec, base = 10)
Warning: NaNs produced
[1] 0.1327078       NaN 0.6989700 0.6020600       NaN 0.4065402 0.1461280
[8]       NaN
  • آمار
Code
(vec <- c(1, -2, 5, 5, 4, -7, 5, -2, 6, 0, 3))
[1]  1 -2  5  5  4 -7  5 -2  6  0  3
  • بیشترین

\[\ x_{max} \]

Code
max(vec)
[1] 6
  • کمترین

\[\ x_{min} \]

Code
min(vec)
[1] -7
  • تعداد

\[\ N \]

Code
length(vec)
[1] 11
  • بازه

\[\ x_{min} \leq x \leq x_{max} \]

Code
range(vec)
[1] -7  6
  • میانه

\[\ x_{median} = \left\{ \begin{array}{lr} x_{\frac{N}{2}} & {\bf if}\;N\;{\bf is\;even} \\ \cfrac{x_{\frac{N-1}{2}} + x_{\frac{N+1}{2}}}{2} & {\bf if}\;N\;{\bf is\;odd} \end{array} \right. \]

Code
median(vec)
[1] 3
  • چارک‌ها

چارک اول (\({\bf Q1}\)), چارک دوم یا همان میانه (\({\bf Q2\;or\;Median}\)), چارک سوم (\({\bf Q3}\)),

\[\ x_{sort} = \left[ \begin{array}{ccccccccccc} -7 & -2 & \overset{\overset{{\bf Q1}}{\uparrow}}{-2} & 0 & 1 & \overset{\overset{{\bf Q2}}{\uparrow}}{3} & 4 & 5 & \overset{\overset{{\bf Q3}}{\uparrow}}{5} & 5 & 6 \end{array} \right] \]

برای محاسبه چارک‌ها باید تابع جدید ساخت زیرا تابع پیش فرضی وجود ندارد

  1. تعریف تابع
Code
quart <- function(x) {
  x <- sort(x)
  n <- length(x)
  m <- (n+1)/2
  if (floor(m) != m) {
    l <- m-1/2; u <- m+1/2
  } else {
    l <- m-1; u <- m+1
  }
  c(Q1=median(x[1:l]), Q2=median(x), Q3=median(x[u:n]))
}
  1. استفاده از تابع
Code
quart(vec)
Q1 Q2 Q3 
-2  3  5 
  • مد

به دلیل نبود تابع مد در زبان R می‌توانیم برای آن از تابع زیر استفاده کنیم.

  1. تعریف تابع
Code
modes <- function(x) {
  ux <- unique(x)
  tab <- tabulate(match(x, ux))
  ux[tab == max(tab)]
}
  1. استفاده از تابع
Code
modes(vec)
[1] 5
  • مجموع

\[\ S_{x} = \sum_{i=1}^{i=n} x_{i} \]

Code
sum(vec)
[1] 18
  • میانگین

\[\ \mu_{x} = \cfrac{\sum x_{i}}{N} \]

Code
mean(vec)
[1] 1.636364
  • انحراف معیار

\[\ \sigma = \sqrt{\cfrac{\sum(x_{i} - \mu)^{2}}{N}} \]

Code
sd(vec)
[1] 4.05642
  • نرمال سازی داده‌ها

\[\ Z = \frac{x - \mu}{\sigma} = \begin{bmatrix} \frac{x_{1} - \mu}{\sigma} & \frac{x_{2} - \mu}{\sigma} & \dots & \frac{x_{n} - \mu}{\sigma} \end{bmatrix} \]

Code
as.vector(scale(vec))
 [1] -0.1568781 -0.8964465  0.8292130  0.8292130  0.5826902 -2.1290604
 [7]  0.8292130 -0.8964465  1.0757358 -0.4034009  0.3361674
  • جمع با مقادیر از دست رفته
Code
sum(c(1, 2, 3, NA, 5, NA))
[1] NA
  • جمع بدون مقادیر از دست رفته
Code
sum(c(1, 2, 3, NA, 5, NA), na.rm = T)
[1] 11