--- 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()` нельзя.