Cоздать персональную рабочую директорию, откройте RStudio, создать новый файл скрипта R и установить рабочую директорию с помощью функции setwd(), а затем сохранить файл скрипта.
setwd("C:\\ML\\block3")
Создать вектор 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)
Построить график функции 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))")
С помощью команды data(airquality) загрузить в R выборку данных о качестве воздуха в Нью-Йорке. Определить тип загруженного объекта airquality. С помощью команды str() изучить структуру объекта airquality и ответить на вопросы:
Каков тип загруженного объекта?
Сколько наблюдений и переменных в выборке?
Какого типа переменные?
Есть ли в данных пропущенные значения?
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).
Создать новую переменную 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
С помощью функций 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
С помощью функции 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")
Построить гистограммы выборочных распределений всех числовых переменных с помощью функции 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")
Конвертировать переменную 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"
Определить месяц, в котором был самый жаркий день за всю историю измерений.
plot(month_factor,t,xlab = "Месяц", ylab = "Температура",type="h")
Можно сделать вывод, что самый жаркий день был в августе.