---
title: "Домашнее задание 2"
output:
  pdf_document:
    latex_engine: xelatex
  word_document: default
mainfont: CMU Serif
header-includes:
- \usepackage[russian]{babel}
- \usepackage{hyperref}
- \hypersetup{colorlinks = true, urlcolor = blue, linkcolor=magenta}
---

Файл с выполненным заданием необходимо загрузить на Dropbox до дедлайна, указанного на сайте. Загрузить на Dropbox нужно шаблонный файл `.Rmd`, предложенный на сайте с вписанным в ячейки после каждой задачи кодом. Добавлять дополнительные ячейки с кодом разрешается.

Домашние задания, сданные после срока, оцениваются с использованием понижающих коэффициентов: опоздание в пределах часа – штраф 10% от полученной оценки, в пределах суток – штраф 20%, в пределах недели – штраф 50%. Домашние задания, сданные через неделю после указанного срока и позже, не принимаются и не оцениваются.

Если при проверке работ установлен факт нарушения академической этики, студент получает
оценку «0» за данную работу. Работа студента, предоставившего свою работу для списывания,
также аннулируется.

### Задача 1

Два события $A$ и $B$ являются независимыми, если выполняется условие $P(A \cap B) = P(A) \times P(B)$. Напишите код, который запрашивает у пользователя с клавиатуры вероятности событий $A$ и $B$ и вероятность их пересечения (одна вероятность — один ввод) и проверяет, являются ли события $A$ и $B$ независимыми, то есть сохраняет и выводит на экран логическое значение `TRUE` или `FALSE`.

**Пример 1**

```
Enter P(A): 0.4
Enter P(B): 0.5
Enter P(A and B): 0.2
[1] TRUE
```

**Пример 2**

```
Enter P(A): 0.3
Enter P(B): 0.1
Enter P(A and B): 0.2
[1] FALSE
```

```{r}
#### YOUR CODE HERE
```


### Задача 2

Напишите код, который запрашивает у пользователя с клавиатуры значения дискретной случайной величины через пробел, потом запрашивает соответствующие значениям вероятности через пробел, и выводит на экран математическое ожидание и дисперсию этой величины.

**Пример**

```
Enter values: -1 0 3
Enter probabilities: 0.4 0.1 0.5
E(X) = 1.1 and D(X) = 3.8
```

**Напоминание.** Математическое ожидание — ожидаемое среднее значение случайной величины — вычисляется следующим образом:

$$
E(X)=\sum\limits_{i=1}^{n}x_ip_i = x_1p_1 + x_2p_2 + \dots + x_np_n.
$$

Другими словами, перемножаем значения и соответствующие им вероятности, а потом все суммируем).

Дисперсия — показатель разброса значений случайной величины относительно ожидаемого среднего значения — вычисляется следующим образом:

$$
D(X)=E(X^2)-[E(X)]^2.
$$
```{r}
#### YOUR CODE HERE
```

### Задача 3

Число действительных бюллетеней на избирательных участках некоторой территориальной избирательной комиссии задается вектором `valid_votes`, а число недействительных бюллетеней — вектором `invalid_votes`. Общее число зарегистрированных избирателей задается вектором `voters`.

```{r}
valid_votes <- c(25, 8, 12, 18, 25, 32, 10, 17, 22, 17)
invalid_votes <- c(1, 0, 4, 3, 9, 2, 0, 5, 1, 0)
voters <- c(50, 75, 62, 54, 98, 55, 72, 80, 44, 48)
```

Создайте вектор `turnout`, который содержит значения явки на избирательных участках, выраженные в процентах и округленные до *второго* знака после запятой.

**Напоминание.** Явка определяется как доля суммы действительных и недействительных бюллетеней от общего числа зарегистрированных избирателей.

```{r}
#### YOUR CODE HERE
```

### Задача 4

Вектор `ages` представляет собой набор значений возраста респондентов мужского пола, принимавших участие в опросе.

```{r}
ages <- c(23, 18, 19, 33, 36, 27, 68, 62, 78, 45, 42, 38, 55, 16, 14, 17, 92)
```

1. Выберите из вектора `ages` значения, которые соответствуют трудоспособному возрасту (в России для мужчин — с 16 до 59 лет включительно), и сохраните их в вектор `work_age`. Сколько людей такого возраста среди наших респондентов? Сохраните ответ на вопрос в переменную `N1`.

```{r}
#### YOUR CODE HERE
```


2. Выберите из вектора `ages` значения, которые соответствуют возрасту, младше трудоспособного (в России — менее 16 лет), и сохраните их в вектор `young_age`. Сколько людей такого возраста среди наших респондентов? Сохраните ответ на вопрос в переменную `N1`.

```{r}
#### YOUR CODE HERE
```


### Задача 5

Политолог Мебейн (Walter R. Mebane) считает, что большая доля избирательных участков со значениями явки, заканчивающихся на 0 или 5, свидетельствует о фальсификациях результатов выборов. Аргументирует он это чисто психологическими причинами: если значения явки сочиняют люди, то они более склонны записывать круглые числа и числа, кратные 5.

Перед вами вектор значений явки на избирательных участках в районе F страны Флатландии:

```{r}
Fturnout <- c(100, 124, 121, 130, 150, 155, 144, 132, 189, 145, 125, 110, 118, 129, 127)
```

Сохраните в вектор `s` индексы избирательных участков, где явка, согласно Мебейну, выглядит подозрительной.

```{r}
#### YOUR CODE HERE
```

### Задача 6

Известно, что в таблице содержатся показатели по Ивановской области за 8 лет (с 2008 по 2015 включительно). В Ивановской области 21 муниципальный район. Создайте три вектора, которые могут быть использованы в качестве столбцов `region` (название области), `district_id` (номер района) и `year` (год):

а) считая, что сначала идут значения показателей по одному району за 8 лет, потом — по второму за 8 лет и так далее;

```{r}
#### YOUR CODE HERE
```

б) считая, что сначала идут значения показателей по одному году по всем 21 районам, потом — по второму по 21 районам и так далее.

```{r}
#### YOUR CODE HERE
```

### Задача 7

Создайте матрицу `M`, которая содержит данные по четырем городам (город, численность населения, площадь):

```
Moscow, 12 615 279, 2561.5
St Petersburg, 5 383 890, 1439
Omsk, 1 164 815, 566.9
Yekaterinburg, 1 483 119, 468
```

Обратите внимание: в матрице обязательно должны присутствовать названия городов, но при этом числовые данные должны иметь тип `numeric`.

```{r}
#### YOUR CODE HERE
```

### Задача 8

Напишите код, который принимает на вход числовую матрицу `Nums` (дана в коде для примера) и сохраняет в переменную `rmax` индекс строки, имеющей наибольшую сумму элементов. Если таких строк несколько, то переменная `rmax` будет представлять собой вектор и хранить несколько индексов. 

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

```{r}
Nums <- matrix(1:12, ncol = 6, byrow = TRUE)

#### YOUR CODE HERE
```

### Задача 9

Дан список `Q` с характеристиками мячей для игры в квиддич. Напишите код, который добавит в этот список данные по снитчу: 

* `name`: `snitch`, 
* `points`: `150`, 
* `who_is_after`: `seeker`.

```{r}
Q <- list(name = c("quaffle", "bludger"),
  points = c(10, 0),
  who_is_after = c("chaser", "beater"))

#### YOUR CODE HERE
```
