Главная страница
Навигация по странице:

  • 1.2 Создание векторов

  • 1.3 Приведение типов

  • 1.4 Векторизация

  • 1.5 Индексирование векторов

  • 1.6 Работа с пропущенными значениями

  • СОДЕРЖАНИЕ

  • 1 Лабораторная работа. Лабораторная работа 1. Начало работы в r 1 Начало работы в r разделите 9801 на 9 ## 1 1089


    Скачать 31.65 Kb.
    НазваниеЛабораторная работа 1. Начало работы в r 1 Начало работы в r разделите 9801 на 9 ## 1 1089
    Дата24.10.2022
    Размер31.65 Kb.
    Формат файлаdocx
    Имя файла1 Лабораторная работа.docx
    ТипЛабораторная работа
    #751308

    Лабораторная работа №1. Начало работы в R
    1.1 Начало работы в R

    • Разделите 9801 на 9

    ## [1] 1089


    • Посчитайте логарифм от 2176782336 по основанию 6

    ## [1] 12


    • Теперь натуральный логарифм 10 и умножьте его на 5

    ## [1] 11.51293


    • С помощью функции sin() посчитайте sin(π),sin(π/2),sin(π/6).

    Значение ππ - зашитая в R константа (pi)

    ## [1] 1.224647e-16

    ## [1] 1

    ## [1] 0.5

    1.2 Создание векторов


    • Создайте вектор из значений 2, 30 и 4000

    ## [1] 2 30 4000


    • Создайте вектор от 1 до 20

    ## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20


    • Создайте вектор от 20 до 1

    ## [1] 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1


    • Функция sum() возвращает сумму элементов вектора на входе. Посчитайте сумму первых 100 натуральных чисел (т.е. всех целых чисел от 1 до 100)

    ## [1] 5050


    • Создайте вектор от 1 до 20 и снова до 1. Число 20 должно присутствовать только один раз!

    ## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 19 18 17 16 15

    ## [26] 14 13 12 11 10 9 8 7 6 5 4 3 2 1


    • Создайте вектор значений 5, 4, 3, 2, 2, 3, 4, 5:

    ## [1] 5 4 3 2 2 3 4 5


    • Создайте вектор 2, 4, 6, … , 18, 20.

    ## [1] 2 4 6 8 10 12 14 16 18 20


    • Создайте вектор 0.1, 0.2, 0.3, …, 0.9, 1.

    ## [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0


    • 2020 год – високосный. Следующий високосный год через 4 года – это будет 2024 год. Составьте календарь всех високосных годов XXI века, начиная с 2020 года

    2100 год относится к XXI веку, а не к XXII

    ## [1] 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 2068 2072 2076

    ## [16] 2080 2084 2088 2092 2096 2100


    • Создайте вектор, состоящий из 20 повторений “Хэй!”

    ## [1] "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!"

    ## [11] "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!" "Хэй!"


    • Как я и говорил, многие функции, работающие с одним значением на входе, так же прекрасно работают и с целыми векторами. Попробуйте посчитать квадратный корень чисел от 1 до 10 с помощью функции sqrt() и сохраните результат в векторе roots. Выведите содержание вектора roots в консоль

    ## [1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751 2.828427

    ## [9] 3.000000 3.162278


    • *Создайте вектор из одной единицы, двух двоек, трех троек, …. , девяти девяток

    ## [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9

    ## [39] 9 9 9 9 9 9 9

    1.3 Приведение типов


    • Сделайте вектор vec1, в котором соедините 3, а также значения "Мой" и "вектор"

    ## [1] "3" "Мой" "вектор"


    • Попробуйте вычесть TRUE из 10

    ## [1] 9


    • Соедините значение 10 и TRUE в вектор vec2

    ## [1] 10 1


    • Соедините вектор vec2 и значение "r":

    ## [1] "10" "1" "r"


    • Соедините значения 10TRUE"r" в вектор

    ## [1] "10" "TRUE" "r"

    1.4 Векторизация


    • Создайте вектор 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


    • Возведите каждый элемент вектора p в степень соответствующего ему элемента вектора q:

    ## [1] 1 5 36 343


    • Умножьте каждое значение вектора p на 10.

    ## [1] 40 50 60 70


    • Создайте вектор квадратов чисел от 1 до 10:

    ## [1] 1 4 9 16 25 36 49 64 81 100


    • Создайте вектор 0, 2, 0, 4, … , 18, 0, 20.

    ## [1] 0 2 0 4 0 6 0 8 0 10 0 12 0 14 0 16 0 18 0 20


    • Создайте вектор 1, 0, 3, 0, 5, …, 17, 0, 19, 0.

    ## [1] 1 0 3 0 5 0 7 0 9 0 11 0 13 0 15 0 17 0 19 0


    • *Создайте вектор, в котором будут содержаться первые 20 степеней двойки.

    ## [1] 2 4 8 16 32 64 128 256 512

    ## [10] 1024 2048 4096 8192 16384 32768 65536 131072 262144

    ## [19] 524288 1048576


    • *Создайте вектор из чисел 1, 10, 100, 1000, 10000:

    ## [1] 1 10 100 1000 10000


    • *Посчитать сумму последовательности 11⋅2+12⋅3+13⋅4+…+150⋅5111⋅2+12⋅3+13⋅4+…+150⋅51.

    ## [1] 0.9803922


    • *Посчитать сумму последовательности 120+121+122+123+…1220120+121+122+123+…1220.

    ## [1] 1.999999


    • *Посчитать сумму последовательности 1+43+79+1027+1381+…+28196831+43+79+1027+1381+…+2819683.

    ## [1] 3.749174


    • *Сколько чисел из последовательности 1+43+79+1027+1381+…+28196831+43+79+1027+1381+…+2819683 больше чем 0.5?

    ## [1] 3

    1.5 Индексирование векторов


    • Создайте вектор troiki со значениями 3, 6, 9, …, 24, 27.

    ## [1] 3 6 9 12 15 18 21 24 27


    • Извлеките 2, 5 и 7 значения вектора troiki.

    ## [1] 6 15 21


    • Извлеките предпоследнее значение вектора troiki.

    ## [1] 24


    • Извлеките все значения вектора troiki кроме предпоследнего:

    ## [1] 3 6 9 12 15 18 21 27

    • Создайте вектор vec3, скопировав следующий код:

    vec3 <- c(3, 5, 2, 1, 8, 4, 9, 10, 3, 15, 1, 11)


    • Найдите второй элемент вектора vec3.

    ## [1] 5


    • Верните второй и пятый элемент вектора vec3.

    ## [1] 5 8


    • Попробуйте извлечь сотое значение вектора vec3:

    ## [1] NA


    • Верните все элементы вектора vec3 кроме второго элемента.

    ## [1] 3 2 1 8 4 9 10 3 15 1 11


    • Верните все элементы вектора vec3 кроме второго и пятого элемента.

    ## [1] 3 2 1 4 9 10 3 15 1 11


    • Найдите последний элемент вектора vec3.

    ## [1] 11


    • Верните все значения вектора vec3 кроме первого и последнего.

    ## [1] 5 2 1 8 4 9 10 3 15 1


    • Найдите все значения вектора vec3, которые больше 4.

    ## [1] 5 8 9 10 15 11


    • Найдите все значения вектора vec3, которые больше 4, но меньше 10.

    Если хотите сделать это в одну строчку, то вам помогут логические операторы!

    ## [1] 5 8 9


    • Найдите все значения вектора vec3, которые меньше 4 или больше 10.

    ## [1] 3 2 1 3 15 1 11


    • Возведите в квадрат каждое значение вектора vec3.

    ## [1] 9 25 4 1 64 16 81 100 9 225 1 121


    • *Возведите в квадрат каждое значение вектора на нечетной позиции и извлеките корень из каждого значения на четной позиции вектора vec3.

    Извлечение корня - это то же самое, что и возведение в степень 0.5.

    ## [1] 9.000000 2.236068 4.000000 1.000000 64.000000 2.000000 81.000000

    ## [8] 3.162278 9.000000 3.872983 1.000000 3.316625


    • Создайте вектор 2, 4, 6, … , 18, 20 как минимум 2 новыми способами.

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

    ## [1] 2 4 6 8 10 12 14 16 18 20

    1.6 Работа с пропущенными значениями


    • Создайте вектор vec4 со значениями 300, 15, 8, 2, 0, 1, 110, скопировав следующий код:

    vec4 <- c(300, 15, 8, 20, 0, 1, 110)

    vec4

    ## [1] 300 15 8 20 0 1 110


    • Замените все значения vec4, которые больше 20 на NA.




    • Проверьте полученный вектор vec4:

    ## [1] NA 15 8 20 0 1 NA


    • Посчитайте сумму vec4 с помощью функции sum(). Ответ NA не считается!

    ## [1] 44

    1.7 Матрицы


    • Создайте матрицу 4х4, состоящую из единиц. Назовите ее M1.

    ## [,1] [,2] [,3] [,4]

    ## [1,] 1 1 1 1

    ## [2,] 1 1 1 1

    ## [3,] 1 1 1 1

    ## [4,] 1 1 1 1


    • Поменяйте все некрайние значения матрицы M1 (то есть значения на позициях [2,2], [2,3], [3,2] и [3,3]) на число 2.

    ## [,1] [,2] [,3] [,4]

    ## [1,] 1 1 1 1

    ## [2,] 1 2 2 1

    ## [3,] 1 2 2 1

    ## [4,] 1 1 1 1


    • Выделите второй и третий столбик из матрицы M1.

    ## [,1] [,2]

    ## [1,] 1 1

    ## [2,] 2 2

    ## [3,] 2 2

    ## [4,] 1 1


    • Сравните (==) вторую колонку и вторую строчку матрицы M1.

    ## [1] TRUE TRUE TRUE TRUE


    • *Создайте таблицу умножения (9х9) в виде матрицы. Сохраните ее в переменную mult_tab.

    ## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]

    ## [1,] 1 2 3 4 5 6 7 8 9

    ## [2,] 2 4 6 8 10 12 14 16 18

    ## [3,] 3 6 9 12 15 18 21 24 27

    ## [4,] 4 8 12 16 20 24 28 32 36

    ## [5,] 5 10 15 20 25 30 35 40 45

    ## [6,] 6 12 18 24 30 36 42 48 54

    ## [7,] 7 14 21 28 35 42 49 56 63

    ## [8,] 8 16 24 32 40 48 56 64 72

    ## [9,] 9 18 27 36 45 54 63 72 81


    • *Из матрицы mult_tab выделите подматрицу, включающую в себя только строчки с 6 по 8 и столбцы с 3 по 7.

    ## [,1] [,2] [,3] [,4] [,5]

    ## [1,] 18 24 30 36 42

    ## [2,] 21 28 35 42 49

    ## [3,] 24 32 40 48 56


    Матрица - это почти вектор. К нему можно обращаться с единственным индексом.

    ## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]

    ## [1,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

    ## [2,] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE

    ## [3,] FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE

    ## [4,] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

    ## [5,] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

    ## [6,] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

    ## [7,] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

    ## [8,] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

    ## [9,] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE


    • *Создайте матрицу mult_tab2, в которой все значения tab меньше 10 заменены на 0.

    ## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]

    ## [1,] 0 0 0 0 0 0 0 0 0

    ## [2,] 0 0 0 0 10 12 14 16 18

    ## [3,] 0 0 0 12 15 18 21 24 27

    ## [4,] 0 0 12 16 20 24 28 32 36

    ## [5,] 0 10 15 20 25 30 35 40 45

    ## [6,] 0 12 18 24 30 36 42 48 54

    ## [7,] 0 14 21 28 35 42 49 56 63

    ## [8,] 0 16 24 32 40 48 56 64 72

    ## [9,] 0 18 27 36 45 54 63 72 81

    1.8 Списки
    Дан список list1:

    list1 = list(numbers = 1:5, letters = letters, logic = TRUE)

    list1

    ## $numbers

    ## [1] 1 2 3 4 5

    ##

    ## $letters

    ## [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"

    ##

    ## $logic

    ## [1] TRUE


    • Найдите первый элемент списка list1. Ответ должен быть списком длиной один.

    ## $numbers

    ## [1] 1 2 3 4 5


    • Теперь найдите содержание первого элемента списка list1 двумя разными способами. Ответ должен быть вектором.

    ## [1] 1 2 3 4 5

    ## [1] 1 2 3 4 5


    • Теперь возьмите первый элемент содержания первого элемента списка list1. Ответ должен быть вектором.

    ## [1] 1


    • Создайте список list2, содержащий в себе два списка list1. Один из них будет иметь имя pupa, а другой – lupa.

    ## $pupa

    ## $pupa$numbers

    ## [1] 1 2 3 4 5

    ##

    ## $pupa$letters

    ## [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"

    ##

    ## $pupa$logic

    ## [1] TRUE

    ##

    ##

    ## $lupa

    ## $lupa$numbers

    ## [1] 1 2 3 4 5

    ##

    ## $lupa$letters

    ## [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"

    ##

    ## $lupa$logic

    ## [1] TRUE


    • *Извлеките первый элемент списка list2, из него – второй полэлемент, а из него – третье значение.

    ## [1] "c"

    СОДЕРЖАНИЕ ОТЧЕТА
    На титульном листе отчета должны быть указаны названия работы и дисциплины, фамилия студента и преподавателя, руководившего работой.

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


    написать администратору сайта