Шаблон отчёта по ЛР №2 (R)

Базовый анализ данных в R (mtcars)

Author

ФИО студента: Кравец Д.В.

Published

September 26, 2025

1. Краткое описание данных

Встроенный в R набор данных mtcars содержит технические характеристики 32 моделей автомобилей 1973–74 годов. Ключевые переменные:

mpg — расход топлива (мили на галлон);

cyl — число цилиндров;

disp — рабочий объём (куб. дюймы);

hp — мощность (л.с.);

drat — передаточное число заднего моста;

wt — масса (1000 фунтов);

qsec — время четверти мили (сек);

vs — тип двигателя (0 = V-образный, 1 = рядный);

am — тип трансмиссии (0 = автомат, 1 = механика);

gear — число передач;

carb — число карбюраторов.

2. Алгоритм работы и ключевые шаги

Установили язык R и RStudio.

Изучили задание на лабораторную работу и информацию.

Написали код для части заданий на языке R по шаблонам из лабораторной работы.

Изучили иформацию из сторонних источников для выполнения оставшихся заданий.

Написали код для оставшихся заданий.

Оформили код и лабораторную работу в quarto и выложили на RPubs

Особенные случаи:

Использовали se = FALSE, по причине предупреждения интерпретатора(убрали стандартную ошибку)

Использовали geom_text для добавления текста над столбцами.

Использовали строчку mtcars <- tibble::rownames_to_column(mtcars, var = “model”)

3. Результаты по заданиям

Часть A.

1 Вывести первые 12 строк и последние 6 строк mtcars.

head(mtcars, 12)
                   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Duster 360        14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 240D         24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230          22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 280          19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C         17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SE        16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
tail(mtcars, 6)
                mpg cyl  disp  hp drat    wt qsec vs am gear carb
Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.7  0  1    5    2
Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.9  1  1    5    2
Ford Pantera L 15.8   8 351.0 264 4.22 3.170 14.5  0  1    5    4
Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.5  0  1    5    6
Maserati Bora  15.0   8 301.0 335 3.54 3.570 14.6  0  1    5    8
Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.6  1  1    4    2

2 Отобразите структуру и краткую сводку по данным (str(), summary(), glimpse()).

str(mtcars)
'data.frame':   32 obs. of  11 variables:
 $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
 $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
 $ disp: num  160 160 108 258 360 ...
 $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
 $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
 $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
 $ qsec: num  16.5 17 18.6 19.4 17 ...
 $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
 $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
 $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
 $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
summary(mtcars)
      mpg             cyl             disp             hp       
 Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
 1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
 Median :19.20   Median :6.000   Median :196.3   Median :123.0  
 Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
 3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
 Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
      drat             wt             qsec             vs        
 Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
 1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
 Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
 Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
 3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
 Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
       am              gear            carb      
 Min.   :0.0000   Min.   :3.000   Min.   :1.000  
 1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
 Median :0.0000   Median :4.000   Median :2.000  
 Mean   :0.4062   Mean   :3.688   Mean   :2.812  
 3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
 Max.   :1.0000   Max.   :5.000   Max.   :8.000  
library(dplyr)

Присоединяю пакет: 'dplyr'
Следующие объекты скрыты от 'package:stats':

    filter, lag
Следующие объекты скрыты от 'package:base':

    intersect, setdiff, setequal, union
glimpse(mtcars)
Rows: 32
Columns: 11
$ mpg  <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.2, 17.8,…
$ cyl  <dbl> 6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 8,…
$ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 140.8, 16…
$ hp   <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, 180, 180…
$ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.92, 3.92,…
$ wt   <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3.150, 3.…
$ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 22.90, 18…
$ vs   <dbl> 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,…
$ am   <dbl> 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,…
$ gear <dbl> 4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3,…
$ carb <dbl> 4, 4, 1, 1, 2, 1, 4, 2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 1, 1, 2,…

3 Преобразуйте переменные cyl и am в факторы; для am назначьте метки auto/manual.

mtcars %>%
  mutate(
    cyl = factor(cyl),
    am = factor(am, labels = c("auto", "manual"))
)
                     mpg cyl  disp  hp drat    wt  qsec vs     am gear carb
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0 manual    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0 manual    4    4
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1 manual    4    1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1   auto    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0   auto    3    2
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1   auto    3    1
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0   auto    3    4
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1   auto    4    2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1   auto    4    2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1   auto    4    4
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1   auto    4    4
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0   auto    3    3
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0   auto    3    3
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0   auto    3    3
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0   auto    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0   auto    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0   auto    3    4
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1 manual    4    1
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1 manual    4    2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1 manual    4    1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1   auto    3    1
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0   auto    3    2
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0   auto    3    2
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0   auto    3    4
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0   auto    3    2
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1 manual    4    1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0 manual    5    2
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1 manual    5    2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0 manual    5    4
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0 manual    5    6
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0 manual    5    8
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1 manual    4    2

4 Добавьте признаки: power_to_weight = hp / wt и efficiency = mpg / wt.

mtcars %>% mutate(power_to_weight = hp / wt,
                  efficiency = mpg / wt)
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
                    power_to_weight efficiency
Mazda RX4                  41.98473   8.015267
Mazda RX4 Wag              38.26087   7.304348
Datsun 710                 40.08621   9.827586
Hornet 4 Drive             34.21462   6.656299
Hornet Sportabout          50.87209   5.436047
Valiant                    30.34682   5.231214
Duster 360                 68.62745   4.005602
Merc 240D                  19.43574   7.648903
Merc 230                   30.15873   7.238095
Merc 280                   35.75581   5.581395
Merc 280C                  35.75581   5.174419
Merc 450SE                 44.22604   4.029484
Merc 450SL                 48.25737   4.638070
Merc 450SLC                47.61905   4.021164
Cadillac Fleetwood         39.04762   1.980952
Lincoln Continental        39.63864   1.917404
Chrysler Imperial          43.03087   2.750234
Fiat 128                   30.00000  14.727273
Honda Civic                32.19814  18.823529
Toyota Corolla             35.42234  18.474114
Toyota Corona              39.35091   8.722110
Dodge Challenger           42.61364   4.403409
AMC Javelin                43.66812   4.425036
Camaro Z28                 63.80208   3.463542
Pontiac Firebird           45.51365   4.993498
Fiat X1-9                  34.10853  14.108527
Porsche 914-2              42.52336  12.149533
Lotus Europa               74.68605  20.092531
Ford Pantera L             83.28076   4.984227
Ferrari Dino               63.17690   7.111913
Maserati Bora              93.83754   4.201681
Volvo 142E                 39.20863   7.697842

5 Отсортируйте таблицу по efficiency по убыванию, выведите топ-10.

mtcars %>% mutate(power_to_weight = hp / wt, efficiency = mpg / wt) %>% arrange(desc(efficiency)) %>% head(10)
                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
               power_to_weight efficiency
Lotus Europa          74.68605  20.092531
Honda Civic           32.19814  18.823529
Toyota Corolla        35.42234  18.474114
Fiat 128              30.00000  14.727273
Fiat X1-9             34.10853  14.108527
Porsche 914-2         42.52336  12.149533
Datsun 710            40.08621   9.827586
Toyota Corona         39.35091   8.722110
Mazda RX4             41.98473   8.015267
Volvo 142E            39.20863   7.697842

Часть B. Фильтрация и выборки

6 Отберите автомобили с mpg > 25 и wt < 2.5 (покажите model, mpg, wt).

mtcars <- tibble::rownames_to_column(mtcars, var = "model")
mtcars %>% filter(mpg > 25, wt < 2.5) %>% select(model, mpg, wt)
           model  mpg    wt
1       Fiat 128 32.4 2.200
2    Honda Civic 30.4 1.615
3 Toyota Corolla 33.9 1.835
4      Fiat X1-9 27.3 1.935
5  Porsche 914-2 26.0 2.140
6   Lotus Europa 30.4 1.513

7 Сформируйте таблицу из столбцов model, mpg, hp, cyl, am и сохраните в mtcars_selection.csv.

mtcars_selection <- mtcars %>%
select(model, mpg, hp, cyl, am)
write.csv(mtcars_selection, "mtcars_selection.csv")

Часть C Группировки и агрегирование

8 Посчитайте для каждой комбинации cyl × am: количество авто, средний mpg, медианный hp.

library(ggplot2)
mtcars %>%
  group_by(cyl, am) %>%
  summarise(
    count = n(),
    mean_mpg = mean(mpg),
    median_hp = median(hp)
)
`summarise()` has grouped output by 'cyl'. You can override using the `.groups`
argument.
# A tibble: 6 × 5
# Groups:   cyl [3]
    cyl    am count mean_mpg median_hp
  <dbl> <dbl> <int>    <dbl>     <dbl>
1     4     0     3     22.9      95  
2     4     1     8     28.1      78.5
3     6     0     4     19.1     116. 
4     6     1     3     20.6     110  
5     8     0    12     15.0     180  
6     8     1     2     15.4     300. 

9 Найдите средний mpg по числу передач gear и визуализируйте bar chart (с подписью значений над столбцами).

mean_mpg_gear <- mtcars %>%
group_by(gear) %>%
summarise(mean_mpg = mean(mpg))
bar_chart <- ggplot(mean_mpg_gear, aes(x = factor(gear), y = mean_mpg)) +
geom_bar(stat = "identity") +
geom_text(aes(label = round(mean_mpg, 2)), vjust = -0.5) +
labs(x = "Число передач (gear)", y = "Средний mpg", title = "Средний mpg по числу передач")
print(bar_chart)

Часть D. Визуализация

10 Постройте scatter plot wt vs mpg, цвет = cyl, форма точки = am, добавьте тренд geom_smooth(method=“lm”).

scatter_plot <- ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl), shape = factor(am))) +
geom_point() +
geom_smooth(method = "lm", se = FALSE)
print(scatter_plot)
`geom_smooth()` using formula = 'y ~ x'

#Без se=false Убирает линию стандартной ошибки. выдает предупреждение.

11 Постройте boxplot mpg по am с фасетами по cyl.

boxplot <- ggplot(mtcars, aes(x = factor(am), y = mpg)) +
geom_boxplot() +
facet_wrap(~cyl)
print(boxplot)

Сохраните лучшие два графика с помощью ggsave().

ggsave("boxplot.png", plot = boxplot, width = 7, height = 5)
ggsave("scatter_plot.png", plot = scatter_plot, width = 7, height = 5)
`geom_smooth()` using formula = 'y ~ x'

4. Выводы

-Автомобили с меньшим числом цилиндров имеют более эффективный расход топлива
-Автомобили с мкпп имеют более эффективный расход топлива
-Средний расход топлива ухудшается с увеличением веса автомобиля, что подтверждается сильной отрицательной корреляцией между этими переменными.
-Язык R Эффективен для анализа данных.

5. Ссылки (если использовались)

https://rpubs.com/Golubnichiy/da_lab_2
https://pozdniakov.github.io/tidy_stats/230-ggplot2.html