Задание 1

Cоздать персональную рабочую директорию, откройте RStudio, создать новый файл скрипта R и установить рабочую директорию с помощью функции setwd(), а затем сохранить файл скрипта.

setwd("C:\\ML\\block3")

Задание 2

Создать вектор x - последовательность чисел от -5 до 5 с шагом, равным 0.1. Создать новый вектор y, содержащий значения функции e^x cosa(x) для всех элементов вектора x. С помощью функции plot(x, y) построить график функции y(x) = e^x cosa(x).

Создаю вектор X и вектор Y

x <- seq(from = -5, to = 5, by = 0.1)
x
##   [1] -5.0 -4.9 -4.8 -4.7 -4.6 -4.5 -4.4 -4.3 -4.2 -4.1 -4.0 -3.9 -3.8 -3.7
##  [15] -3.6 -3.5 -3.4 -3.3 -3.2 -3.1 -3.0 -2.9 -2.8 -2.7 -2.6 -2.5 -2.4 -2.3
##  [29] -2.2 -2.1 -2.0 -1.9 -1.8 -1.7 -1.6 -1.5 -1.4 -1.3 -1.2 -1.1 -1.0 -0.9
##  [43] -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1  0.0  0.1  0.2  0.3  0.4  0.5
##  [57]  0.6  0.7  0.8  0.9  1.0  1.1  1.2  1.3  1.4  1.5  1.6  1.7  1.8  1.9
##  [71]  2.0  2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9  3.0  3.1  3.2  3.3
##  [85]  3.4  3.5  3.6  3.7  3.8  3.9  4.0  4.1  4.2  4.3  4.4  4.5  4.6  4.7
##  [99]  4.8  4.9  5.0
y <- exp(x)*cos(x)
y
##   [1]  1.911301e-03  1.388880e-03  7.200945e-04 -1.126783e-04 -1.127339e-03
##   [6] -2.341730e-03 -3.773230e-03 -5.438267e-03 -7.351744e-03 -9.526371e-03
##  [11] -1.197190e-02 -1.469426e-02 -1.769456e-02 -2.096802e-02 -2.450278e-02
##  [16] -2.827854e-02 -3.226522e-02 -3.642138e-02 -4.069270e-02 -4.501024e-02
##  [21] -4.928882e-02 -5.342524e-02 -5.729660e-02 -6.075863e-02 -6.364419e-02
##  [26] -6.576187e-02 -6.689485e-02 -6.680006e-02 -6.520778e-02 -6.182165e-02
##  [31] -5.631935e-02 -4.835397e-02 -3.755625e-02 -2.353777e-02 -5.895282e-03
##  [36]  1.578360e-02  4.191338e-02  7.290194e-02  1.091401e-01  1.509890e-01
##  [41]  1.987661e-01  2.527278e-01  3.130505e-01  3.798094e-01  4.529538e-01
##  [46]  5.322807e-01  6.174056e-01  7.077307e-01  8.024106e-01  9.003170e-01
##  [51]  1.000000e+00  1.099650e+00  1.197056e+00  1.289569e+00  1.374062e+00
##  [56]  1.446889e+00  1.503860e+00  1.540203e+00  1.550549e+00  1.528914e+00
##  [61]  1.468694e+00  1.362678e+00  1.203070e+00  9.815326e-01  6.892508e-01
##  [66]  3.170221e-01 -1.446262e-01 -7.052880e-01 -1.374493e+00 -2.161480e+00
##  [71] -3.074932e+00 -4.122659e+00 -5.311231e+00 -6.645559e+00 -8.128421e+00
##  [76] -9.759927e+00 -1.153693e+01 -1.345235e+01 -1.549451e+01 -1.764633e+01
##  [81] -1.988453e+01 -2.217875e+01 -2.449070e+01 -2.677318e+01 -2.896924e+01
##  [86] -3.101119e+01 -3.281977e+01 -3.430336e+01 -3.535719e+01 -3.586283e+01
##  [91] -3.568773e+01 -3.468504e+01 -3.269370e+01 -2.953882e+01 -2.503253e+01
##  [96] -1.897523e+01 -1.115742e+01 -1.362099e+00  1.063204e+01  2.504670e+01
## [101]  4.209920e+01

Строю график функции:

plot(x,y)

Задание 3

Построить график функции y(x)= sina(lnx) на диапазоне от 1 до 100. Изменить оформление графика (подписи осей, вид точки данных, соединительные линии и т.п.), изучив справку по функции plot() с помощью команды ?plot.

x=(1:100)
y=sin(log(x))
y
##   [1]  0.00000000  0.63896128  0.89057704  0.98302774  0.99925351
##   [6]  0.97568681  0.93046593  0.87340508  0.81012663  0.74398034
##  [11]  0.67701370  0.61049546  0.54521310  0.48164895  0.42008815
##  [16]  0.36068659  0.30351480  0.24858672  0.19587894  0.14534373
##  [21]  0.09691784  0.05052867  0.00609840 -0.03645310 -0.07720626
##  [26] -0.11624051 -0.15363333 -0.18945971 -0.22379176 -0.25669854
##  [31] -0.28824597 -0.31849677 -0.34751058 -0.37534399 -0.40205067
##  [36] -0.42768148 -0.45228460 -0.47590567 -0.49858790 -0.52037224
##  [41] -0.54129746 -0.56140032 -0.58071564 -0.59927645 -0.61711409
##  [46] -0.63425827 -0.65073722 -0.66657774 -0.68180531 -0.69644413
##  [51] -0.71051723 -0.72404654 -0.73705291 -0.74955621 -0.76157539
##  [56] -0.77312850 -0.78423277 -0.79490462 -0.80515975 -0.81501316
##  [61] -0.82447917 -0.83357147 -0.84230317 -0.85068680 -0.85873436
##  [66] -0.86645735 -0.87386678 -0.88097320 -0.88778673 -0.89431709
##  [71] -0.90057359 -0.90656518 -0.91230045 -0.91778765 -0.92303471
##  [76] -0.92804925 -0.93283862 -0.93740986 -0.94176976 -0.94592487
##  [81] -0.94988147 -0.95364562 -0.95722318 -0.96061977 -0.96384082
##  [86] -0.96689157 -0.96977707 -0.97250219 -0.97507165 -0.97748998
##  [91] -0.97976157 -0.98189067 -0.98388136 -0.98573761 -0.98746324
##  [96] -0.98906196 -0.99053735 -0.99189286 -0.99313185 -0.99425757

Строю график функции, сделав подписи осей, с измененным типом соеденительной линии и заголовком:

plot(x,y,xlab="X",ylab="Y=sin(ln(x))",type="l", main = "График Y=sin(ln(X))")

Задание 4

С помощью команды data(airquality) загрузить в R выборку данных о качестве воздуха в Нью-Йорке. Определить тип загруженного объекта airquality. С помощью команды str() изучить структуру объекта airquality и ответить на вопросы:

  1. Каков тип загруженного объекта?

  2. Сколько наблюдений и переменных в выборке?

  3. Какого типа переменные?

  4. Есть ли в данных пропущенные значения?

data(airquality)
airquality
##     Ozone Solar.R Wind Temp Month Day
## 1      41     190  7.4   67     5   1
## 2      36     118  8.0   72     5   2
## 3      12     149 12.6   74     5   3
## 4      18     313 11.5   62     5   4
## 5      NA      NA 14.3   56     5   5
## 6      28      NA 14.9   66     5   6
## 7      23     299  8.6   65     5   7
## 8      19      99 13.8   59     5   8
## 9       8      19 20.1   61     5   9
## 10     NA     194  8.6   69     5  10
## 11      7      NA  6.9   74     5  11
## 12     16     256  9.7   69     5  12
## 13     11     290  9.2   66     5  13
## 14     14     274 10.9   68     5  14
## 15     18      65 13.2   58     5  15
## 16     14     334 11.5   64     5  16
## 17     34     307 12.0   66     5  17
## 18      6      78 18.4   57     5  18
## 19     30     322 11.5   68     5  19
## 20     11      44  9.7   62     5  20
## 21      1       8  9.7   59     5  21
## 22     11     320 16.6   73     5  22
## 23      4      25  9.7   61     5  23
## 24     32      92 12.0   61     5  24
## 25     NA      66 16.6   57     5  25
## 26     NA     266 14.9   58     5  26
## 27     NA      NA  8.0   57     5  27
## 28     23      13 12.0   67     5  28
## 29     45     252 14.9   81     5  29
## 30    115     223  5.7   79     5  30
## 31     37     279  7.4   76     5  31
## 32     NA     286  8.6   78     6   1
## 33     NA     287  9.7   74     6   2
## 34     NA     242 16.1   67     6   3
## 35     NA     186  9.2   84     6   4
## 36     NA     220  8.6   85     6   5
## 37     NA     264 14.3   79     6   6
## 38     29     127  9.7   82     6   7
## 39     NA     273  6.9   87     6   8
## 40     71     291 13.8   90     6   9
## 41     39     323 11.5   87     6  10
## 42     NA     259 10.9   93     6  11
## 43     NA     250  9.2   92     6  12
## 44     23     148  8.0   82     6  13
## 45     NA     332 13.8   80     6  14
## 46     NA     322 11.5   79     6  15
## 47     21     191 14.9   77     6  16
## 48     37     284 20.7   72     6  17
## 49     20      37  9.2   65     6  18
## 50     12     120 11.5   73     6  19
## 51     13     137 10.3   76     6  20
## 52     NA     150  6.3   77     6  21
## 53     NA      59  1.7   76     6  22
## 54     NA      91  4.6   76     6  23
## 55     NA     250  6.3   76     6  24
## 56     NA     135  8.0   75     6  25
## 57     NA     127  8.0   78     6  26
## 58     NA      47 10.3   73     6  27
## 59     NA      98 11.5   80     6  28
## 60     NA      31 14.9   77     6  29
## 61     NA     138  8.0   83     6  30
## 62    135     269  4.1   84     7   1
## 63     49     248  9.2   85     7   2
## 64     32     236  9.2   81     7   3
## 65     NA     101 10.9   84     7   4
## 66     64     175  4.6   83     7   5
## 67     40     314 10.9   83     7   6
## 68     77     276  5.1   88     7   7
## 69     97     267  6.3   92     7   8
## 70     97     272  5.7   92     7   9
## 71     85     175  7.4   89     7  10
## 72     NA     139  8.6   82     7  11
## 73     10     264 14.3   73     7  12
## 74     27     175 14.9   81     7  13
## 75     NA     291 14.9   91     7  14
## 76      7      48 14.3   80     7  15
## 77     48     260  6.9   81     7  16
## 78     35     274 10.3   82     7  17
## 79     61     285  6.3   84     7  18
## 80     79     187  5.1   87     7  19
## 81     63     220 11.5   85     7  20
## 82     16       7  6.9   74     7  21
## 83     NA     258  9.7   81     7  22
## 84     NA     295 11.5   82     7  23
## 85     80     294  8.6   86     7  24
## 86    108     223  8.0   85     7  25
## 87     20      81  8.6   82     7  26
## 88     52      82 12.0   86     7  27
## 89     82     213  7.4   88     7  28
## 90     50     275  7.4   86     7  29
## 91     64     253  7.4   83     7  30
## 92     59     254  9.2   81     7  31
## 93     39      83  6.9   81     8   1
## 94      9      24 13.8   81     8   2
## 95     16      77  7.4   82     8   3
## 96     78      NA  6.9   86     8   4
## 97     35      NA  7.4   85     8   5
## 98     66      NA  4.6   87     8   6
## 99    122     255  4.0   89     8   7
## 100    89     229 10.3   90     8   8
## 101   110     207  8.0   90     8   9
## 102    NA     222  8.6   92     8  10
## 103    NA     137 11.5   86     8  11
## 104    44     192 11.5   86     8  12
## 105    28     273 11.5   82     8  13
## 106    65     157  9.7   80     8  14
## 107    NA      64 11.5   79     8  15
## 108    22      71 10.3   77     8  16
## 109    59      51  6.3   79     8  17
## 110    23     115  7.4   76     8  18
## 111    31     244 10.9   78     8  19
## 112    44     190 10.3   78     8  20
## 113    21     259 15.5   77     8  21
## 114     9      36 14.3   72     8  22
## 115    NA     255 12.6   75     8  23
## 116    45     212  9.7   79     8  24
## 117   168     238  3.4   81     8  25
## 118    73     215  8.0   86     8  26
## 119    NA     153  5.7   88     8  27
## 120    76     203  9.7   97     8  28
## 121   118     225  2.3   94     8  29
## 122    84     237  6.3   96     8  30
## 123    85     188  6.3   94     8  31
## 124    96     167  6.9   91     9   1
## 125    78     197  5.1   92     9   2
## 126    73     183  2.8   93     9   3
## 127    91     189  4.6   93     9   4
## 128    47      95  7.4   87     9   5
## 129    32      92 15.5   84     9   6
## 130    20     252 10.9   80     9   7
## 131    23     220 10.3   78     9   8
## 132    21     230 10.9   75     9   9
## 133    24     259  9.7   73     9  10
## 134    44     236 14.9   81     9  11
## 135    21     259 15.5   76     9  12
## 136    28     238  6.3   77     9  13
## 137     9      24 10.9   71     9  14
## 138    13     112 11.5   71     9  15
## 139    46     237  6.9   78     9  16
## 140    18     224 13.8   67     9  17
## 141    13      27 10.3   76     9  18
## 142    24     238 10.3   68     9  19
## 143    16     201  8.0   82     9  20
## 144    13     238 12.6   64     9  21
## 145    23      14  9.2   71     9  22
## 146    36     139 10.3   81     9  23
## 147     7      49 10.3   69     9  24
## 148    14      20 16.6   63     9  25
## 149    30     193  6.9   70     9  26
## 150    NA     145 13.2   77     9  27
## 151    14     191 14.3   75     9  28
## 152    18     131  8.0   76     9  29
## 153    20     223 11.5   68     9  30

Глядя на выведенное содержание переменной, можно сделать вывод о том, что тип загружаемого объекта - таблица данных (data frame).

str(airquality)
## 'data.frame':    153 obs. of  6 variables:
##  $ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
##  $ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
##  $ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
##  $ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
##  $ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ Day    : int  1 2 3 4 5 6 7 8 9 10 ...

Можно сделать вывод, что в выборке содержится 153 наблюдения и 6 переменных. Переменная Wind - вещественная, остальные переменные- целочисленные.

В данных можно заметить пропущенные значения (NA).

Задание 5

Создать новую переменную temperature и поместить в неё значения переменной Temp из таблицы airquality. С помощью функции summary() оценить выборочные описательные статистики переменной temperature.

data(airquality)
temperature <- airquality[["Temp"]]
temperature
##   [1] 67 72 74 62 56 66 65 59 61 69 74 69 66 68 58 64 66 57 68 62 59 73 61
##  [24] 61 57 58 57 67 81 79 76 78 74 67 84 85 79 82 87 90 87 93 92 82 80 79
##  [47] 77 72 65 73 76 77 76 76 76 75 78 73 80 77 83 84 85 81 84 83 83 88 92
##  [70] 92 89 82 73 81 91 80 81 82 84 87 85 74 81 82 86 85 82 86 88 86 83 81
##  [93] 81 81 82 86 85 87 89 90 90 92 86 86 82 80 79 77 79 76 78 78 77 72 75
## [116] 79 81 86 88 97 94 96 94 91 92 93 93 87 84 80 78 75 73 81 76 77 71 71
## [139] 78 67 76 68 82 64 71 81 69 63 70 77 75 76 68
summary(temperature)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   56.00   72.00   79.00   77.88   85.00   97.00

Задание 6

С помощью функций mean(), median(), sd(), range() и quantiles() определить для переменной Solar.R из таблицы airquality: оценки среднего значения, медианы, стандартного отклонения и размаха, а также квантили уровней от 0.05 до 0.95 с шагом 0.05.

data(airquality)
solarr <- airquality[["Solar.R"]]

Так как в данных имеются пропущенные значения, необходимо разрешить функции mean() принимать пропущенные данные, делаю это для того, чтобы не получить ошибку.

mean(solarr, na.rm=TRUE)
## [1] 185.9315
median(solarr, na.rm=TRUE)
## [1] 205
sd(solarr, na.rm=TRUE)
## [1] 90.05842
range(solarr, na.rm=TRUE)
## [1]   7 334
quantile(solarr,probs = seq(0.05,0.95,0.05),na.rm = TRUE)
##     5%    10%    15%    20%    25%    30%    35%    40%    45%    50% 
##  24.25  47.50  69.75  92.00 115.75 137.00 149.75 183.00 191.00 205.00 
##    55%    60%    65%    70%    75%    80%    85%    90%    95% 
## 221.50 230.00 238.00 252.00 258.75 266.00 274.25 288.50 311.50

Задание 7

С помощью функции boxplot(x ~ y) построить набор ящичных графиков зависимости характеристик переменной Solar.R (= x) от месяца (переменная y = Month).

data(airquality)
x <- airquality[["Solar.R"]]
y <- airquality[["Month"]]
boxplot(x~y,xlab="X = Month", ylab="Y = Solar.R")

Задание 8

Построить гистограммы выборочных распределений всех числовых переменных с помощью функции hist().

o <- airquality[["Ozone"]]
w <- airquality[["Wind"]]
t <- airquality[["Temp"]]
d <- airquality[["Day"]]
hist(x,xlab="Solar.R", main="Histogram of Solar.R")

hist(y,xlab="Month", main="Histogram of Month")

hist(o,xlab="Ozone", ,xlim=range(0:200),ylim =range(0:40),main="Histogram of Ozone")

hist(w,xlab="Wind", xlim=range(0:25), ylim=range(0:40),main="Histogram of Wind")

hist(t,xlab="Temperature", xlim=range(50:100),  main="Histogram of Temperature")

hist(d,xlab="Day", xlim=range(0:40), ylim =range(0:30), main="Histogram of Day")

Задание 9

Конвертировать переменную Month в фактор, задав ему наименования уровней (месяцев).

month_factor <- airquality[["Month"]]
factor(month_factor)
##   [1] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6
##  [36] 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7
##  [71] 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8
## [106] 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
## [141] 9 9 9 9 9 9 9 9 9 9 9 9 9
## Levels: 5 6 7 8 9
levels(month_factor)<-c("May","June","July","August","September")
levels(month_factor)
## [1] "May"       "June"      "July"      "August"    "September"

Задание 10

Определить месяц, в котором был самый жаркий день за всю историю измерений.

plot(month_factor,t,xlab = "Месяц", ylab = "Температура",type="h")

Можно сделать вывод, что самый жаркий день был в августе.