[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 1 1 1 1
[3,] 1 1 1 1
[4,] 1 1 1 1
Составлены в формате задание - ответ к нему.
Рассчитано на самопроверку: ваша задача написать такой код, чтобы совпал с моим правильным ответом. Плюс есть еще несколько заданий на подумать и вспомнить материал лекции.
Не стесняйтесь гуглить, это необходимо для решения многих задач в программировании, которые могут встретиться в реальной жизни.
Если вдруг найдутся ошибки/опечатки, пишите на почту e.ubogoeva@alumni.nsu.ru
или в телеграм. Вопросы по заданиям также можно писать на почту или в телеграм, телеграм чуть предпочтительнее.
Матрицы
Создайте матрицу
A
, состоящую из единиц и имеющую 4 колонки и 4 строки:Замените третью строку матрицы A на числа 5, 6, 7, 8
[,1] [,2] [,3] [,4] [1,] 1 1 1 1 [2,] 1 1 1 1 [3,] 5 6 7 8 [4,] 1 1 1 1
Извлеките четвертую колонку этой матрицы
[1] 1 1 8 1
Создайте матрицу
M
из чисел от 21 до 40 размером 4 строки и 5 столбцов.[,1] [,2] [,3] [,4] [,5] [1,] 21 25 29 33 37 [2,] 22 26 30 34 38 [3,] 23 27 31 35 39 [4,] 24 28 32 36 40
Замените в матрице
M
четные значения словом “Четное”, а нечетные словом “Нечетное”.[,1] [,2] [,3] [,4] [,5] [1,] "Нечетное" "Нечетное" "Нечетное" "Нечетное" "Нечетное" [2,] "Четное" "Четное" "Четное" "Четное" "Четное" [3,] "Нечетное" "Нечетное" "Нечетное" "Нечетное" "Нечетное" [4,] "Четное" "Четное" "Четное" "Четное" "Четное"
Списки
Создайте список
list1
, первый элемент: числовой вектор от 11 до 77 с шагом 3, второй элемент: буквы строчные английского алфавита - это встроенный наборletters
, третий элемент: векторTRUE
,FALSE
.[[1]] [1] 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 [[2]] [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" [20] "t" "u" "v" "w" "x" "y" "z" [[3]] [1] TRUE FALSE
Извлеките второй элемент списка в виде вектора
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" [20] "t" "u" "v" "w" "x" "y" "z"
Извлеките четвертый элемент вектора первого элемента списка
[1] 20
Создайте новый элемент в списке, назовите его
double_vector
и заполните его первым элементом списка, умноженного на 2[[1]] [1] 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 [[2]] [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" [20] "t" "u" "v" "w" "x" "y" "z" [[3]] [1] TRUE FALSE $double_vector [1] 22 28 34 40 46 52 58 64 70 76 82 88 94 100 106 112 118 124 130 [20] 136 142 148 154
Извлеките элемент
double_vector
двумя разными способами[1] 22 28 34 40 46 52 58 64 70 76 82 88 94 100 106 112 118 124 130 [20] 136 142 148 154
[1] 22 28 34 40 46 52 58 64 70 76 82 88 94 100 106 112 118 124 130 [20] 136 142 148 154
Извлеките 1, 3, 5, 7 элементы вектора double_vector
[1] 22 34 46 58
Замените пятый элемент
double_vector
на 100. Правила такие же как при замене элементов векторов[[1]] [1] 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 [[2]] [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" [20] "t" "u" "v" "w" "x" "y" "z" [[3]] [1] TRUE FALSE $double_vector [1] 22 28 34 40 100 52 58 64 70 76 82 88 94 100 106 112 118 124 130 [20] 136 142 148 154
Создайте отдельный список
small_list
из первого и третьего элемента спискаlist1
.[[1]] [1] 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 [[2]] [1] TRUE FALSE
Составьте список
list2
, состоящий из заглавных букв английского алфавита (LETTERS) номером 10, 15, 10, 15.[1] "J" "O" "J" "O"
Объедините
list1
иlist2
в списокlist_whole
, проверьте тип данных, выведите структуру.[1] "list"
List of 2 $ :List of 4 ..$ : num [1:23] 11 14 17 20 23 26 29 32 35 38 ... ..$ : chr [1:26] "a" "b" "c" "d" ... ..$ : logi [1:2] TRUE FALSE ..$ double_vector: num [1:23] 22 28 34 40 100 52 58 64 70 76 ... $ : chr [1:4] "J" "O" "J" "O"
Датафреймы
Создадим датафрейм
df
, первая колонка: числа 10, 12, 15, вторая колонка вектор TRUE, FALSE, TRUE, третья колонка любой строковый векторc.10..12..15. c.TRUE..FALSE..TRUE. letters.1.3. 1 10 TRUE a 2 12 FALSE b 3 15 TRUE c
Лучше создать с именами:
values logi character 1 10 TRUE a 2 12 FALSE b 3 15 TRUE c
Также для переименования можно использовать функцию
colnames()
colnames(df) <- c('name1', 'name2', 'name3') df
name1 name2 name3 1 10 TRUE a 2 12 FALSE b 3 15 TRUE c
Извлеките 1, 2, 3 строки 5, 6, 9 колонки датасета
mtcars
(встроен в R, достаточно набратьmtcars
).drat wt am Mazda RX4 3.90 2.620 1 Mazda RX4 Wag 3.90 2.875 1 Datsun 710 3.85 2.320 1
Установка пакетов
Установите пакет
ggplot2
(пакет с CRAN-а для графиков)Загрузите пакет
ggplot2
Задание со звездочкой (на способность гуглить): удалите (unload) пакет
ggplot2
из окружения. Это редко, но иногда может понадобиться, при загрузке ненужного пакета. Однако, я рекомендую перезапустить RStudio комбинацией клавиш Ctrl+Shift+F10, и после этого загрузить уже только нужные пакеты.
Условия
Извлечь случайное число из набора 0.00015, 0.6, 0.056, 0.02, если число < 0.05, вывести в консоль “p-value < 0.05”, иначе вывести “p-value не значимо”.
[1] "p-value < 0.05"
Напоминаю, что для извлечения случайных чисел используется функция sample()
Циклы
На циклы заданий не будет, потому что все, что я смогла придумать легко решается без циклов. Совет от соника: не использовать циклы.
Векторизация
Создайте вектор p, состоящий из значений 4, 5, 6, 7, и вектор q, состоящий из 0, 1, 2, 3.
[1] 4 5 6 7
[1] 0 1 2 3
Посчитайте поэлементную сумму векторов p и q:
[1] 4 6 8 10
Посчитайте поэлементную разницу p и q:
[1] 4 4 4 4
Поделите каждый элемент вектора p на соответствующий ему элемент вектора q:
[1] Inf 5.000000 3.000000 2.333333
Создайте вектор, в котором будут содержаться первые 20 степеней двойки.
[1] 2 4 8 16 32 64 128 256 512 [10] 1024 2048 4096 8192 16384 32768 65536 131072 262144 [19] 524288 1048576
Посчитайте сумму чисел, кратных 3 ИЛИ кратных 5 в наборе чисел от 1 до 100
[1] 2418
Найдите сумму всех простых чисел от 1 до 100, где 1 не является простым. Если не получается решить задание сейчас, лучше подождать следующей лекции, разберем более подробно векторизацию и работу с функциями семейства
*apply()
и создание собственных функций.[1] 1060