---
title: "Основы программирования в R"
author: "Алла Тамбовцева"
output:
  pdf_document:
    latex_engine: xelatex
mainfont: CMU Serif
header-includes:
- \usepackage[russian]{babel}
- \usepackage{hyperref}
- \hypersetup{colorlinks = true, urlcolor = blue, linkcolor=magenta}
---
# Практикум 1: ввод и вывод, векторы

## Часть 1: ввод и вывод

### Задача 1

Напишите код, который запрашивает у пользователя его имя с клавиатуры и выводит на экран сообщение вида `"Hello, name!"`.

### Задача 2

Напишите код, который запрашивает у пользователя два дробных числа (одно число — один запрос) и выводит на экран их сумму. Решите эту задачу в предположении, что:

* пользователь вводит дробные числа с десятичным разделителем в виде точки;
* пользователь вводит дробные числа с десятичным разделителем в виде запятой.

### Задача 3

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

## Часть 2: векторы

### Задача 1

Дан вектор `g`, в котором хранятся следующие значения:

```
1, 0, 2, 3, 6, 8, 12, 15, 0, NA, NA, 9, 4, 16, 2, 0
```

Создайте вектор `g`. Используя R, выведите на экран:

* первый элемент вектора;
* последний элемент вектора;
* элементы вектора с третьего по пятый включительно;
* элементы вектора, которые равны 2;
* элементы вектора, которые больше 4;
* элементы вектора, которые кратны 3 (делятся на 3 без остатка);
* элементы вектора, которые больше 4 и кратны 3;
* элементы вектора, которые или меньше 1, или больше 5;
* индексы элементов, которые равны 0;
* индексы элементов, которые не меньше 2 и не больше 8.

### Задача 2

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

### Задача 3

Напишите код, который выводит на экран индексы пропущенных значений в векторе.

### Задача 4

Напишите код, который считает, сколько пропущенных значений в векторе.

### Задача 5

Напишите код, который позволяет создать вектор из id (уникальных номеров) респондентов, если известно, что в опросе участвовало 100 респондентов.

### Задача 6

*Решение задачи предполагает рациональное решение с помощью функций R, не нужно создавать вектора перечислением большого числа элементов вручную.*

Известно, что в таблице хранятся показатели по 3 странам за 5 лет (см. ниже). 

Создайте вектор который мог бы послужить столбцом `country` в этой таблице. Создайте вектор, который мог бы послужить столбцом `year` в этой таблице.

Таблица выглядит так:

\begin{table}[ht!]
\centering
\begin{tabular}{|lcc|}
\hline
\textbf{n} & \textbf{country} & \textbf{year} \\ \hline
1          & France           & 2000          \\
2          & France           & 2001          \\
3          & France           & 2002          \\
4          & France           & 2003          \\
5          & France           & 2004          \\
6          & Italy            & 2000          \\
7          & Italy            & 2001          \\
8          & Italy            & 2002          \\
9          & Italy            & 2003          \\
10         & Italy            & 2004          \\
11         & Spain            & 2000          \\
12         & Spain            & 2001          \\
13         & Spain            & 2002          \\
14         & Spain            & 2003          \\
15         & Spain            & 2004          \\ \hline
\end{tabular}
\end{table}


#### Задача 7

Исследователь решил создать вектор `income`, в котором сохранены доходы нескольких респондентов:

```{r}
income <- c(10000, 32000, 28000, 150000, 65000, 1573)
```

Исследователю нужно получить вектор `income_class`, состоящий из 0 и 1: 0 ставится, если доход респондента ниже среднего дохода, а 1 — если больше или равен среднему доходу. Создайте вектор `income_class`.

**Подсказка.** Сначала можно посчитать среднее значение по вектору `income` и сохранить его в какую-нибудь переменную. Пользоваться встроенной функцией `mean()` нельзя.