---
title: "Домашнее задание №1"
subtitle: "ФББ - R - 2026"
output: html_document
---

![](assets/fish/01_inia_r_hex.png){width=10% fig-align="center"}
***

При выполнении домашнего задания сохраняйте нумерацию и формулировки заданий. 

Сохранять результат можете в файлах типа .R или .Rmd на ваше усмотрение. 

***

# Задание №0

Просмотрите материалы лекции и дополнительные материалы.

Убедитесь, что вы понимаете, что происходит на каждом слайде. 

Убедитесь, что у вас установлены R и RStudio.

Убедитесь, что у вас получается создавать файлы типа .R и .Rmd, а также вы понимаете, куда они сохраняются и можете найти эти файлы на своем ноутбуке. 

***

Пока все кажется странным, ничего не понятно, неудобно, сумбурно. 

Вас периодически охватывает злость и отчаяние. 

Отлично! Мы так и планировали! 

Давайте понемногу разбираться. 

Не переживайте, если сразу не получится сделать вообще все задания и разобраться вообще во всех слайдах. 

На занятии мы еще обязательно повторим многое из того, что было, прежде чем идти дальше. 

***
Часть 1 

# Вектора - создание

Потренируемся создавать вектора разными способами.

Здесь и далее код должен содержать только работающие строки и демонстрировать корректность предложенного решения.

## Задание №1

Создайте вектор *х* из чисел 11, 34 и 12.

Какова длина вектора *х*?

```{r}

```

## Задание №2

Наиболее оптимальным способом создайте вектор *y* из целых чисел от -1000 до 1000 включительно.

Какова длина вектора *y*?

```{r}

```

## Задание №3

Создайте вектор *b*, состоящий из векторов *x* (задание №1) и *y* (задание №2).

```{r}

```

## Задание №4

Создайте вектор *x*, состоящий из четных чисел в интервале от 2 до 20.

Не используйте функцию **с()**.

```{r}

```

## Задание №5

Создайте наиболее оптимальным способом вектор *v*:

22, 23, 24, 25, 26, 22, 23, 24, 25, 26, 22, 23, 24, 25, 26, 22, 23, 24, 25, 26

```{r}

```

## Задание №6

Создайте вектор *a*, элементы которого разбивают интервал от 2 до 16 на 6 равных отрезков. 

```{r}

```

Часть 2

# Вектора - создание

## Задание №1

Создайте вектор *x*, состоящий из нечетных чисел в интервале от 2 до 20.

Не используйте функцию **с()**.

```{r}

```


## Задание №2

Создайте логичесикй вектор *а* длины 5. Сами придумайте последовательность TRUE и(!) FALSE.

Убедитесь, что получившийся вектор *а* действительно логического типа.

Посчитайте сумму вектора *а* (воспользуйтесь функцией **sum()**).

Кратко поясните, как отработала функция **sum()** на логическом векторе.

```{r}

```

## Задание №3

С помощью какой операции можно получить ответ: “TRUE” “FALSE” “TRUE”?

Обратите внимание на все детали записи предложенного ответа

- as.character(as.numeric(as.logical(-1:1)))
- as.character(as.logical(-1:1))
- -1:1
- as.logical(-1:1)
- as.numeric(as.logical(-1:1))
- as.numeric(as.character(as.logical(-1:1)))

```{r}

```

*** 

# Вектора - срезы и манипуляции

## Задание №4

Создайте вектор *n* вида “a”, “b”, “c” и т.д. Воспользуйтесь набором **letters**.

Вызовите справку **?letters** и обратите внимание на раздел Usage, это может пригодиться когда-нибудь.

Длина вектора *n* должна быть аналогична длине вектора *х* из задания №1.

При создании вектора *n* нельзя указывать длину в виде числа в явном виде.

Какого типа данные содержит вектор *n*?

```{r}

```

## Задание №5

Задайте элементам вектора *х* из задания №1 имена в виде вектора из задания №4.

Положите результат в переменную *l*.

```{r}

```

## Задание №6

Возьмите вектор *х* из задания №1.

Возьмите только последний элемент вектора *х*, не указывая индекс последнего элемента в явном виде.

```{r}

```

## Задание №7

Возьмите вектор *х* из задания №1.

Сколько элементов вектора *х* имеют значения строго больше 10?

```{r}

```

## Задание №8

Возьмите вектор *х* из задания №1.

Замените первый элемент вектора *х* на любое число.

```{r}

```

## Задание №9

Возьмите вектор *х* из задания №1.

Отберите элементы с нечетными индексами.

```{r}

```

## Задание №10

Создайте оптимальным способом вектор *v* длины 17, состоящий из повторяющихся блоков чисел 5, 12, 26.

Выведите индексы элементов вектора *v*, значения которых равны 12.

Воспользуйтесь функцией **which()**.

Сколько получилось таких элементов?

```{r}

```

## Задание №11

Возьмите вектор *v* из задания 10. 

Чему равно минимальное значение элементов в этом векторе?

Выведите индексы всех элементов, содержащих самое маленькое число этого вектора. 

Сколько таких элементов получилось?

```{r}

```

## Задание №12

Возьмите вектор *l* из задания №5.

Выведите элемент(ы) вектора с:

- именем “b”

- индексом 3

- значением 17

```{r}

```

## Задание №13

Создайте вектор *m* из чисел 5, 6 и 19.

Возьмите вектор *l* из задания №5.

Отберите из вектора *l* только такие значения, которые есть в векторе *m*.

Для решения воспользуйтесь оператором **%in%**.

```{r}

```

## Задание №14

Воспользуйтесь вектором *v* из задания №10.

Есть ли хоть одно положительное значение в векторе *v*? Воспользуйтесь функцией **any()**.

Все ли значения вектора *v* положительные? Воспользуйтесь функцией **all()**.

```{r}

```

***

# Таблицы

## Задание №15

Создайте таблицу, заполненную любыми данными на ваше усмотрение, состоящую из двух столбцов и трех строк.

Воспользуйтесь функцией **data.frame()**.

```{r}

```

## Задание №16

Используйте встроенный набор данных CO2.

Сколько строк и сколько столбцов в таблице? Выведите в явном виде

```{r}

```

## Задание №17

Опишите разнообразие значений столбца Type в наборе данных CO2 (какие значения представлены и в каком количестве).

Используйте функцию **table()**.

```{r}

```

## Задание №18

Отберите из набора данных CO2 такие строки, где значение столбца conc строго больше среднему значению столбца conc. Сколько получилось строк?

```{r}

```

## Задание №19

Количество столбцов в таблице можно узнать с помощью функции **ncol()**, аналогично для строк - функция **nrow()**.

Выберите из набора данных CO2 только 1ый и последний столбцы, не указывая в явном виде индекс последнего столбца. Используйте функцию **ncol()**. Сколько столбцов получилось?

```{r}

```

## Задание №20

Отберите из набора данных CО2 такие значения, где столбец Plant принимает значения Qn1, Qn2 и Qn3 Используйте оператор **%in%**.

Сколько получилось строк?

```{r}

```

## Задание №21

Воспользуйтесь встроенным набром данных mtcars.

Выведите имя третьей колонки.

```{r}

```

## Задание №22

Воспользуйтесь встроенным набром данных mtcars.

Выведите только первый, второй и третий столбцы, а также восьмую и пятую строки.

```{r}

```

## Задание №23

Воспользуйтесь встроенным набром данных mtcars.

Выведите строчку таблицы, где содержится информация о машине Camaro Z28.

Воспользуйтесь функцией **rownames()**.

```{r}

```

## Задание №24

Выведите все переменные вашего окружения

Удалите все переменные

```{r}

```

***

~~на самостоятельной работе (она будет не сложная, ориентируйтесь в основном на скрипт с семинара и поймите логику команд) будет задание на создание вектора (вот тут посмотрите допслайды) и отбор некоторых значений из вектора по индексу, а также в предложенной таблице нужно будет отфильтровать некоторые строки и столбцы, но я вам ничего не говорила~~

надеюсь,я не напутала номера заданий... если что - пишите!!!