P1 // Введение в R. Типы данных. Векторы

Основные задания

#1

Вычислите:

  1. \(-14^7 - 6 \times 2^{11}\)
  2. \(\sin^2 64\)
  3. \(e^{8 + \pi}\)
  4. \(\log_{12} 34\)
  5. \(\sqrt{5\!+\!2i}\)
Подсказка
  • ?exp()

#2

Присвойте переменным x и y значения 3 и -1.44 соответственно.

Вычислите:

  1. \(\log_{\sqrt[x]{24}} 17^{\sin{4.8\pi}}\)
  2. \(\dfrac{e^{x + y^2}}{1 + e^{x+y^2}}\)
  3. \(\sqrt{\ln \Bigg( \dfrac{\cos\Big( \dfrac{2}{3x^2} \Big)}{|y| + x} \Bigg)}\)
  4. \(\sin \big( \dfrac{\pi}{4x} \big) + \cos \big( \dfrac{2\pi}{\sqrt{y} - 1} \big)\)
Подсказки
  • \(\sqrt[x]{a} = a^{\frac{1}{x}}\)
  • ?log()

#3

Создайте следующие векторы:

  1. \(\pmatrix{4 & 8 & 12}\)
[1]  4  8 12
  1. \(\pmatrix{1 & 2 & 3 & \dots & 9 & 10}\)
 [1]  1  2  3  4  5  6  7  8  9 10
  1. \(\pmatrix{10 & 9 & 8 & \dots & 2 & 1 & 0 & -1 & -2 & \dots & -9 & -10}\)
 [1]  10   9   8   7   6   5   4   3   2   1   0  -1  -2  -3  -4  -5  -6  -7  -8
[20]  -9 -10
  1. \(\pmatrix{1 & 2 & 3 & \dots & 9 & 10 & 9 & \dots & 3 & 2 & 1}\)
 [1]  1  2  3  4  5  6  7  8  9 10  9  8  7  6  5  4  3  2  1
Подсказка

?`:`

#4

Создайте следующие векторы:

  1. \(\pmatrix{2 & 4 & 8 & 10 & 12 & \dots & 26 & 28 & 30}\)
 [1]  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30
  1. \(\pmatrix{0 & 0.5 & 1 & 1.5 & 2 \dots & 8.5 & 9 & 9.5 & 10}\)
 [1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0
[16]  7.5  8.0  8.5  9.0  9.5 10.0
  1. \(\pmatrix{-3 & -2.75 & -2.5 & -2.25 & \dots & 2.25 & 2.5 & 2.75 & 3}\)
 [1] -3.00 -2.75 -2.50 -2.25 -2.00 -1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25
[13]  0.00  0.25  0.50  0.75  1.00  1.25  1.50  1.75  2.00  2.25  2.50  2.75
[25]  3.00
Подсказка

?seq()

#5

Возьмите вектор (a) из задания 3 и на основе него создайте следующие векторы:

  1. \(\pmatrix{4 & 8 & 12 & 4 & 8 & 12 & \dots & 4 & 8 & 12}\), где \(4\) повторяется 8 раз
 [1]  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12
  1. \(\pmatrix{4 & 8 & 12 & 4 & 8 & 12 & \dots & 4 & 8 & 12 & 8 & 12}\), где \(4\) повторяется 8 раз, а \(8\) и \(12\) повторяются по 9 раз
 [1]  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12  4  8 12  8
[26] 12
  1. \(\pmatrix{4 & 4 & \dots & 4 & 8 & 8 & \dots & 8 & 12 & 12 & \dots & 12}\), где \(4\) повторяется 10 раз, \(8\) — 20 раз, а \(12\) — 30 раз.
 [1]  4  4  4  4  4  4  4  4  4  4  8  8  8  8  8  8  8  8  8  8  8  8  8  8  8
[26]  8  8  8  8  8 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
[51] 12 12 12 12 12 12 12 12 12 12
Подсказка ?rep()

#6

Пусть вектор (а) из предыдущего задания — это количество стимулов в пробах эксперимента. Сохраните его в переменную setsize и приведите к текстовому типу данных, чтобы он корректно интерпретировался статистическими функциями.

 [1] "4"  "8"  "12" "4"  "8"  "12" "4"  "8"  "12" "4"  "8"  "12" "4"  "8"  "12"
[16] "4"  "8"  "12" "4"  "8"  "12" "4"  "8"  "12"
Подсказка ?character()

#7

  1. Пусть в нашем исследовании есть три группы респондентов — group 1, group 2 и group 3. Создайте вектор из 90 значений (по 30 для каждой группы), который будет описывать принадлежность респондентов к какой-либо группе.

Возможны два варинта результата:

  • так
 [1] "group 1" "group 1" "group 1" "group 1" "group 1" "group 1" "group 1"
 [8] "group 1" "group 1" "group 1" "group 1" "group 1" "group 1" "group 1"
[15] "group 1" "group 1" "group 1" "group 1" "group 1" "group 1" "group 1"
[22] "group 1" "group 1" "group 1" "group 1" "group 1" "group 1" "group 1"
[29] "group 1" "group 1" "group 2" "group 2" "group 2" "group 2" "group 2"
[36] "group 2" "group 2" "group 2" "group 2" "group 2" "group 2" "group 2"
[43] "group 2" "group 2" "group 2" "group 2" "group 2" "group 2" "group 2"
[50] "group 2" "group 2" "group 2" "group 2" "group 2" "group 2" "group 2"
[57] "group 2" "group 2" "group 2" "group 2" "group 3" "group 3" "group 3"
[64] "group 3" "group 3" "group 3" "group 3" "group 3" "group 3" "group 3"
[71] "group 3" "group 3" "group 3" "group 3" "group 3" "group 3" "group 3"
[78] "group 3" "group 3" "group 3" "group 3" "group 3" "group 3" "group 3"
[85] "group 3" "group 3" "group 3" "group 3" "group 3" "group 3"
  • или так
 [1] "group 1" "group 2" "group 3" "group 1" "group 2" "group 3" "group 1"
 [8] "group 2" "group 3" "group 1" "group 2" "group 3" "group 1" "group 2"
[15] "group 3" "group 1" "group 2" "group 3" "group 1" "group 2" "group 3"
[22] "group 1" "group 2" "group 3" "group 1" "group 2" "group 3" "group 1"
[29] "group 2" "group 3" "group 1" "group 2" "group 3" "group 1" "group 2"
[36] "group 3" "group 1" "group 2" "group 3" "group 1" "group 2" "group 3"
[43] "group 1" "group 2" "group 3" "group 1" "group 2" "group 3" "group 1"
[50] "group 2" "group 3" "group 1" "group 2" "group 3" "group 1" "group 2"
[57] "group 3" "group 1" "group 2" "group 3" "group 1" "group 2" "group 3"
[64] "group 1" "group 2" "group 3" "group 1" "group 2" "group 3" "group 1"
[71] "group 2" "group 3" "group 1" "group 2" "group 3" "group 1" "group 2"
[78] "group 3" "group 1" "group 2" "group 3" "group 1" "group 2" "group 3"
[85] "group 1" "group 2" "group 3" "group 1" "group 2" "group 3"
  1. Пробелы в переменной — это не очень хорошо. С ними порой бывает трудно совладать, особенно если это название переменной. Поправьте код так, чтобы значения получившегося вектора были group1, group2 и group3.
Подсказка

Есть полезные функци

paste() и paste0()

#8

С помощью функции rnorm() сгенерируйте генеральную совокупность из 100 000 объектов с параметрами mean = 4 и sd = 5. Сохраните результат генерации в переменную pop.

Управляем случайностью

Мы начали использовать функции, которые генерируют случайные значения. На самом деле — псевдослучайные. Эти функции все равно берут для старта генерации некоторое число, которые называется зерно датчика случайных чисел. При каждой генерации выбирается новое зерно, поэтому чтобы получать вопроизводимые генерации, используйте команду

set.seed(123) # аргументом может быть любое число

для фиксации зерна датчика.

Здесь для примера выведены первые 6 значений получившегося вектора с зерном датчика 123:

[1]  1.197622  2.849113 11.793542  4.352542  4.646439 12.575325

#9

Извлеките из полученной генеральной совокупности 5 случайных выборок по 100 наблюдений. Сохраните результаты в переменные sam1, sam2, sam3, sam4, sam5.

Подсказки

sample()

#10

  1. Вычислите сумму по вектору sam1.
[1] 413.7175
  1. Вычислите среднее по вектору sam2.
[1] 3.923302
  1. Вычислите медиану по вектору sam3.
[1] 4.678189
Подсказки

sum(), mean(), median()

#11

Вытащите из вектора sam4

  1. первое значение
[1] 4.322255
  1. последнее значение
[1] 6.59581
  1. значения с 20 по 45
 [1]  6.7102016  9.8120964  5.0107901 -0.8795999 -3.1547040  2.0596966
 [7]  8.9368571 15.0198156 -3.2504005  1.8713970  0.1659881  1.2036028
[13]  6.3932684 -5.4840376  6.4268378  2.5689008  6.8815972  5.2472839
[19]  2.0564044 -0.3368694  6.1285080 11.8324004  5.1569496  5.3038879
[25]  2.0595734  8.0743347
  1. все значения на каждой третьей позиции
 [1]  1.8656729 -1.0380688  0.0487652  9.2603455  3.6907364 -1.3720069
 [7]  9.8120964 -3.1547040 15.0198156  0.1659881 -5.4840376  6.8815972
[13] -0.3368694  5.1569496  8.0743347  0.6967350  4.6007992  0.5244773
[19]  4.2208443  4.5443673 -5.2433008  9.2374712  6.0199053  2.3896147
[25] -1.0019473  5.9791716 -4.2677144  8.3736194 -4.0924207  4.7387274
[31]  8.3348366  5.8763253 -1.4135126

#12

  1. Отберите из вектора sam1 отрицательные значения.
 [1] -0.86462592 -0.94484180 -2.07880143 -0.13098197 -1.91565289 -5.28290929
 [7] -3.22637337 -1.86029800 -2.68294512 -0.54210834 -0.04343552 -6.94815335
[13] -4.79582813 -0.87889020 -4.35187278
  1. Сколько отрицательных значений получилось?
[1] 15
  1. Сколько в векторе sam2 значений, которые больше среднего по этому вектору?
[1] 49
Подсказки
  • Как проверить, является ли значение отрицательным?
  • Что будет, если применить функцию sum() к логическому вектору?

#13

  1. Отберите из вектора sam3 значения, которые больше \(3\) и меньше \(8\).
 [1] 6.564571 4.868531 7.624946 4.184650 3.803741 3.650760 5.632981 3.547872
 [9] 6.514473 5.783445 7.793938 4.764839 6.809496 6.944641 4.840430 6.646447
[17] 4.788420 5.043548 6.770495 4.597178 7.110550 6.923069 5.467794 6.545195
[25] 6.638711 4.931173 4.629073 7.933149 3.258597 3.413523 3.819202 5.066510
[33] 4.727306 7.922155 5.507252 6.904482 3.419338 3.057315 6.551481 5.385412
  1. Отберите из вектора sam3 значения, которые меньше \(0.5\) и больше \(9.3\).
 [1] -2.2792758 -7.1110108 -4.2702642  9.4171388  0.3560784  0.3372579
 [7] -4.5375200 -3.1423729 11.6559768 -3.7400258 -0.1699422 11.9204627
[13] -0.4551254 12.1089750 -2.3898453 -8.9188372 12.7047663 12.8860380
[19]  0.2379474 17.5865182 18.5374980  9.6972577 15.7993312 -1.8163944
[25] 12.0756909 -1.6153330 -1.1040935 -0.9575991  0.2666245 -6.1548194
[31] 16.4877822 -4.0335469
Подсказки

Choose your fighter: & or |!

#14

  1. Какое максимальное значение по вектору sam1?
[1] 17.29578
  1. Какое минимальное значение по вектору sam1?
[1] -6.948153
Подсказки

max() min()

#15

  1. На каком месте в векторе sam1 стоит его максимальное значение?
[1] 46
  1. На каком месте в векторе sam1 стоит его минимальное значение?
[1] 76
Подсказки

?which

#16

Выполните следующую команду:

set.seed(5); sam5[sample(1:100, sample(100, 1))] <- NA

Она добавит несколько пропущенных значений в вектор sam5, чтобы бы познакомились с ними поближе.

  1. Сколько пропущенных значений получилос в векторе sam5?
[1] 66
  1. На каких местах они стоят?
 [1]  2  3  4  8  9 10 11 12 13 15 16 17 18 19 20 21 23 25 26 27 28 33 35 36 38
[26] 41 42 44 46 47 48 50 51 52 53 54 56 57 58 60 61 62 63 64 66 68 69 71 73 74
[51] 75 76 79 80 81 82 83 84 85 86 87 89 91 92 94 96
Подсказки

is.na(), sum(), which()

#17

Нам надо разделить выборку на две части. Отберите каждое второе значение из вектора sam2.

Сделайте это без использования функции seq().

 [1]  2.3527021  7.4657977  3.2630859  2.9293819  7.9132282  2.7298448
 [7] -5.3354761  0.5715994 11.5417924 -0.9629012 13.5269225  4.5883073
[13]  3.6055362  0.9778270 -5.1643005  9.4514223 14.6302593  2.6315765
[19]  1.6168720  1.8716594 -7.6945650  9.6309191 10.4996978  2.9399021
[25]  3.2792859 -3.9736714  6.2763436 13.2747818  0.9221390  4.0507395
[31] -1.2070508  8.5970705  1.8415100  5.7795425  7.0005321  5.3124407
[37]  4.6506140  7.4098154 -2.5329810  1.5775273  4.9022350  8.3841538
[43]  7.7847300  6.4293226 -0.2572302  2.8786958  3.7499050 -2.7381326
[49]  7.1951135 -0.2553637
Подсказки

c(FALSE, TRUE)

#18

Мы хотим трансформировать наши переменные для последующего анализа:

  1. умножьте каждое значение вектора sam1 на \(20\)
  1. вычтите из каждого значения вектора sam2 среднее по этому вектору
  1. прологорифмируйте все значения вектора sam3 (используйте десятичный логарифм)
Подсказки

log10()

#19

Выполните преобразования из предыдущего задания на векторе sam5.

Возникли ли проблемы? Можно ли их поправить?

Подсказки

mean(x, na.rm = TRUE)

#20

Выполните две операции:

  1. 1:2 + 1:10
  2. 1:3 + 1:10

Что получается? Почему так?

Подсказки
Как делать задание?
Что надо сделать?
Ответ неверный

Дополнительные задания

#1

Выберите из вектора sam1 все значения, кроме:

  1. первого
 [1] -0.86462592  7.51237589  9.41199808 -0.94484180  4.59291198  0.54265885
 [7]  0.77326672  1.81885980 13.82644027 -2.07880143  7.45869576  0.13274957
[13] -0.13098197  9.77581510 10.60561828  5.54129868  9.82977267 -1.91565289
[19]  7.89319556  1.64227191  5.46698651  4.05991863  3.26697666 -5.28290929
[25]  5.90833367  1.83697545  1.25371780  9.44208213  1.59472542  6.62944836
[31] -3.22637337  5.87389398  2.79092023  4.55429538  2.35464645  2.10125535
[37]  1.08161914 -1.86029800  8.68762493  7.80428008  7.68077289  7.22336585
[43]  8.25021965  0.37934153 17.29578490  2.12404811 11.19868214  5.61364956
[49]  6.26455178  9.30974747  8.22963245  1.82055651  6.35265187  7.53467850
[55]  5.44259924 -2.68294512  3.38371177  6.07990876  5.48157755  1.49986442
[61] 14.53315159  3.47078970  8.63500080 -0.54210834  1.30349851  3.63461370
[67]  4.38594903 -0.04343552  7.52735170  2.01421877  1.32583840  1.50064835
[73]  6.34316883  9.48475476 -6.94815335  3.17026546  4.08397639  0.84415034
[79] -4.79582813 -0.87889020  3.06846462  2.02101025  5.52450423  1.46098543
[85]  2.04031564  3.27339375 13.41015563  2.74710652  3.24623397 14.48739570
[91]  2.27567154 -4.35187278  3.11907552  5.35165505  0.15897401  2.50732312
[97]  5.49998163  7.26772963  8.92648486
  1. последнего
 [1]  4.39041210 -0.86462592  7.51237589  9.41199808 -0.94484180  4.59291198
 [7]  0.54265885  0.77326672  1.81885980 13.82644027 -2.07880143  7.45869576
[13]  0.13274957 -0.13098197  9.77581510 10.60561828  5.54129868  9.82977267
[19] -1.91565289  7.89319556  1.64227191  5.46698651  4.05991863  3.26697666
[25] -5.28290929  5.90833367  1.83697545  1.25371780  9.44208213  1.59472542
[31]  6.62944836 -3.22637337  5.87389398  2.79092023  4.55429538  2.35464645
[37]  2.10125535  1.08161914 -1.86029800  8.68762493  7.80428008  7.68077289
[43]  7.22336585  8.25021965  0.37934153 17.29578490  2.12404811 11.19868214
[49]  5.61364956  6.26455178  9.30974747  8.22963245  1.82055651  6.35265187
[55]  7.53467850  5.44259924 -2.68294512  3.38371177  6.07990876  5.48157755
[61]  1.49986442 14.53315159  3.47078970  8.63500080 -0.54210834  1.30349851
[67]  3.63461370  4.38594903 -0.04343552  7.52735170  2.01421877  1.32583840
[73]  1.50064835  6.34316883  9.48475476 -6.94815335  3.17026546  4.08397639
[79]  0.84415034 -4.79582813 -0.87889020  3.06846462  2.02101025  5.52450423
[85]  1.46098543  2.04031564  3.27339375 13.41015563  2.74710652  3.24623397
[91] 14.48739570  2.27567154 -4.35187278  3.11907552  5.35165505  0.15897401
[97]  2.50732312  5.49998163  7.26772963
  1. каждого пятого
 [1]  4.39041210 -0.86462592  7.51237589  9.41199808  4.59291198  0.54265885
 [7]  0.77326672  1.81885980 -2.07880143  7.45869576  0.13274957 -0.13098197
[13] 10.60561828  5.54129868  9.82977267 -1.91565289  1.64227191  5.46698651
[19]  4.05991863  3.26697666  5.90833367  1.83697545  1.25371780  9.44208213
[25]  6.62944836 -3.22637337  5.87389398  2.79092023  2.35464645  2.10125535
[31]  1.08161914 -1.86029800  7.80428008  7.68077289  7.22336585  8.25021965
[37] 17.29578490  2.12404811 11.19868214  5.61364956  9.30974747  8.22963245
[43]  1.82055651  6.35265187  5.44259924 -2.68294512  3.38371177  6.07990876
[49]  1.49986442 14.53315159  3.47078970  8.63500080  1.30349851  3.63461370
[55]  4.38594903 -0.04343552  2.01421877  1.32583840  1.50064835  6.34316883
[61] -6.94815335  3.17026546  4.08397639  0.84415034 -0.87889020  3.06846462
[67]  2.02101025  5.52450423  2.04031564  3.27339375 13.41015563  2.74710652
[73] 14.48739570  2.27567154 -4.35187278  3.11907552  0.15897401  2.50732312
[79]  5.49998163  7.26772963

#2

Удалите из вектора sam5 пропущенные значения, а затем выбрите из оставшихся те, которые по абсолютному значению не превосходят среднего по исходному вектору.

 [1] -0.1302246  0.2366228  0.1609746  1.5571810  1.7204365 -1.2161484
 [7] -0.4993535  1.5936095  1.5626324  1.3366887  1.9028314 -0.9607909

#3

Создайте вектор абсолютных отклонений от среднего для переменной sam3.

Отклонение — это разность между средним значением и конкретным наблюдением.

  [1]  6.7347974  2.1090491  0.4130099 11.5665324  2.5323307  8.7257857
  [7]  4.3574929  4.9616173  4.0994431  3.1694240  0.2708717  4.1182637
 [13]  1.7550398  4.7069901  8.9930416  0.6517801  0.8047613  7.5978945
 [19]  2.5356150  7.2004552  1.1774595  0.9076491  2.0589518  1.3279239
 [25]  1.5558194  3.3384168  0.3093178  8.1955473  2.3539740  4.6254638
 [31]  7.4649412  2.4891198  2.8474315  4.9106470  7.6534535  0.3849086
 [37]  6.8453669  4.4116817  2.6759725  3.5041080 13.3743588  4.0628074
 [43]  8.2492448  8.4305165  4.2175742  2.1909253 13.1309966  1.9950427
 [49]  0.3328986  0.5880268 14.0819765  5.2417361  2.3149738  4.6715763
 [55]  0.1416569 11.3438096  2.6550287  2.1285482  2.4675472  1.0122723
 [61]  3.3655228  4.7129128  4.2288495  2.0896739  6.2719160  7.6201693
 [67]  6.0708545  5.5596151  2.1831896  0.4756512  2.6762700  4.7412268
 [73]  4.5992259  1.6880188  3.4962533  0.1735510  5.4131207  4.1888971
 [79]  3.4776270  1.1969244  1.0419987 10.6103410  3.3304874 12.0322606
 [85]  0.6363192  0.6109887  0.2717847  3.4666337  2.4565189  1.0517302
 [91]  2.0094836  2.4489609  3.3347401  1.0361836  1.3982068  3.3113490
 [97]  8.4890685  2.0959594  2.2626900  0.9298904

#4

Представим себя ненадолго исследователями эмоций. Сгенерируем переменную, описывающую условия в нашем эксперименте — случайный вектор из 120 элементов, значения которых могут быть positive, negative или control.

  1. Сохраните результаты генрации в переменную cond.

Для примеры выведены 10 первых значений вектора, сгенерированного при set.seed(616).

 [1] "negative" "control"  "control"  "positive" "negative" "control" 
 [7] "negative" "negative" "positive" "negative"
  1. Поскольку данная переменная является группирующей, то есть задает группы наблюдений, давайте превратим её из текстовой в факторную.
  [1] negative control  control  positive negative control  negative negative
  [9] positive negative negative negative control  control  control  control 
 [17] positive positive positive negative negative negative positive positive
 [25] control  negative positive control  positive control  control  negative
 [33] control  negative control  negative negative positive control  negative
 [41] negative control  positive negative positive control  negative control 
 [49] control  positive negative positive control  negative negative negative
 [57] negative control  negative negative control  control  positive control 
 [65] positive control  negative control  negative control  negative negative
 [73] negative negative control  negative control  positive negative positive
 [81] positive control  control  control  positive control  control  positive
 [89] control  positive positive control  control  negative negative positive
 [97] control  positive negative positive negative positive positive positive
[105] negative positive control  control  negative positive negative negative
[113] negative control  negative negative negative control  control  negative
Levels: control negative positive

#5

Значения созданной переменной, несмотря на категориальный характер, можно упорядочить. Например, negative < control < positive. Такой порядок отличается от алфавитного.

Создайте упорядоченный фактор, в котором порядок категорий будет соответствовать приведенному (negative < control < positive).

  [1] negative control  control  positive negative control  negative negative
  [9] positive negative negative negative control  control  control  control 
 [17] positive positive positive negative negative negative positive positive
 [25] control  negative positive control  positive control  control  negative
 [33] control  negative control  negative negative positive control  negative
 [41] negative control  positive negative positive control  negative control 
 [49] control  positive negative positive control  negative negative negative
 [57] negative control  negative negative control  control  positive control 
 [65] positive control  negative control  negative control  negative negative
 [73] negative negative control  negative control  positive negative positive
 [81] positive control  control  control  positive control  control  positive
 [89] control  positive positive control  control  negative negative positive
 [97] control  positive negative positive negative positive positive positive
[105] negative positive control  control  negative positive negative negative
[113] negative control  negative negative negative control  control  negative
Levels: negative < control < positive
Подсказка

?factor()

#6

Постройте частотную таблицу по вектору cond, чтобы оценить уравнивание условий в исследовании.

cond
negative  control positive 
      47       42       31 
Подсказка

?table()

#7

Выполните следующие команды для создания двух векторов x1 и x2.

x1 <- read.csv("https://raw.githubusercontent.com/angelgardt/wlm2023/master/data/pr1-27.csv")$x1
x2 <- read.csv("https://raw.githubusercontent.com/angelgardt/wlm2023/master/data/pr1-27.csv")$x2

Вычислите результат выражения x1 / x2.

Что получилось? Почему так?

#8

Возьмите вектор от \(1\) до \(30\) с шагом \(1\) и отберите из него все числа, кроме тех, которые одновременно кратны двум и трем.

 [1]  1  5  7 11 13 17 19 23 25 29
Подсказки
  • Логические операторы приводят числовые значения к логическому типу
  • ?`!`

#9

Возьмите всё тот же вектор от \(1\) до \(30\) с шагом \(1\) и преобразуйте его по следующей схеме:

\[ \matrix{ x_1 & \rightarrow & x_1 \\ x_2 & \rightarrow & \sqrt{x_2} \\ x_3 & \rightarrow & \sqrt[3]{x_3} \\ x_4 & \rightarrow & x_4 \\ x_5 & \rightarrow & \sqrt{x_5} \\ ... & & } \]

 [1]  1.000000  1.414214  1.442250  4.000000  2.236068  1.817121  7.000000
 [8]  2.828427  2.080084 10.000000  3.316625  2.289428 13.000000  3.741657
[15]  2.466212 16.000000  4.123106  2.620741 19.000000  4.472136  2.758924
[22] 22.000000  4.795832  2.884499 25.000000  5.099020  3.000000 28.000000
[29]  5.385165  3.107233
Подсказки
  • \(\sqrt[x]{a} = a^{\frac{1}{x}}\)
  • Операция возведения в степень, как и другие, тоже может зацикливать вектор.

#10

И напоследок. Мы можем умножать векторы на число и умножать их друг на друга поэлементно. Однако в линале под перемножением вектором понимается их скалярное произведение.

Найдите скалярное произведение векторов sam1 и sam2.

         [,1]
[1,] 1831.822
Подсказка

%*%


Некоторые задания, а также форматы заданий, подсмотрены у Мороз (2022) и Grinberg and Reed (2016).