Алла Тамбовцева
25 января 2018 г
Задача 1.
В двух переменных сохранены некоторые значения:
x <- 2
y <- 4
Напишите код, который позволит поменять значения в переменных x
и y
местами, то есть получить следующее:
x
## [1] 4
y
## [1] 2
Внимание: Ваш код должен работать для любых значений x
, y
.
Задача 2.
x <- 3.5
y <- "2,6"
z <- 1.78
h <- TRUE
h
целочисленной.y
числовой (обратите внимание на запятую!).x
текстовой.Задача 3.
Исследователь сохранил доход респондента в переменную dohod:
dohod <- 1573
Исследователь передумал и решил изменить значение этой переменной - сохранить в нее натуральный логарифм дохода. Помогите ему!
Задача 1.
Дан вектор g
, в котором хранятся следующие значения:
1, 0, 2, 3, 6, 8, 12, 15, 0, NA, NA, 9, 4, 16, 2, 0
Выведите на экран:
Задача 2.
Напишите код, который заменяет последний элемент вектора на пропущенное значение (NA). Ваш код должен работать для любого вектора (любой длины).
Задача 3.
Напишите код, который выводит на экран индексы пропущенных значений в векторе.
Задача 4.
Напишите код, который считает, сколько пропущенных значений в векторе.
Задача 5.
Напишите код, который позволяет создать вектор из id (уникальных номеров) респондентов, если известно, что в опросе участвовало 100 респондентов.
Задача 6.
Известно, что в базе данных хранятся показатели по 3 странам за 5 лет. Таблица выглядит примерно так:
country | year | |
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 |
Задача 7.
Исследователю из задачи 3 из части 1 понравилось, как Вы работаете в R, и теперь он решил создать вектор income, в котором сохранены доходы нескольких респондентов:
income <- c(10000, 32000, 28000, 150000, 65000, 1573)
Исследователю нужно получить вектор income_class
, состоящий из 0 и 1: 0 ставится, если доход респондента ниже среднего дохода, а 1 - если больше или равен среднему доходу.
Подсказка: сначала можно посчитать среднее значение по вектору income
и сохранить его в какую-нибудь переменную. Пользоваться встроенной функцией mean()
нельзя.
Создайте матрицу размерности 3 * 4, состоящую из 3, а затем измените некоторые ее элементы так, чтобы получить следующее:
[3 3 4 3]
[1 3 3 3]
[3 NA 3 1]
Создайте из следующих векторов матрицу, такую, что:
a <- c(1, 3, 4, 9, NA)
b <- c(5, 6, 7, 0, 2)
c <- c(9, 10, 13, 1, 20)
Дайте (новые) названия строкам и столбцам матрицы.
names <- c("Jane", "Michael", "Mary", "George")
ages <- c(8, 6, 28, 45)
gender <- c(0, 1, 0, 1)
Если получилось не то, что хотелось, подумайте, как это можно исправить, не теряя информации, которая сохранена в векторах.
Добавьте в матрицу столбец age_sq – возраст в квадрате.
Выведите на экран имя Michael (обращаясь к элементам списка, конечно).
Выведите на экран вектор gender.
Назовите векторы в списке name, age, gender. Выведите на экран элементы вектора name.
Добавьте в список вектор drinks, в котором сохранены значения: juice, tea, rum, coffee.
Добавьте в список данные по еще одному человеку: John, 2 года, мужской пол, любит молоко.
Пусть у нас есть строка s:
s <- "a,b,c,d"
Мы хотим получить из нее вектор из 6 букв. Применям функцию:
let <- strsplit(s, ",")
Получили почти то, что хотели. Почему почти? Потому что получили не вектор, а список!
class(let)
## [1] "list"
Превратим в вектор:
unlist(let)
## [1] "a" "b" "c" "d"
Теперь все в порядке, получили вектор из четырех элементов.
Теперь задание. Дана строка index:
index <- "0,72;0,38;0,99;0,81;0,15;0,22;0,16;0,4;0,24"
Получите из этой строки числовой вектор I.