[МУЗЫКА] [МУЗЫКА] Для анализа часто бывает нужно отобрать из данных какой-то фрагмент. Давайте на примере векторов рассмотрим, как это делается. Потом этот навык нам пригодится дальше при работе с таблицами. Сначала мы рассмотрим самый простой вариант адресации в векторах — поиск элементов по номеру. Для того чтобы из вектора извлечь какой-то фрагмент, нужно использовать оператор квадратные скобки. Как это записывается? Формат простой. Вы пишете название своего вектора, а затем в квадратных скобках адрес элемента. Адрес элемента — это просто его порядковый номер. У первого элемента порядковый номер 1 и так далее. То есть интуитивно понятный способ нумерации. Второй вариант использования квадратных скобок подразумевает, что здесь вместо номера в качестве адреса используется логический вектор. Но мы сначала рассмотрим, как использовать числа. Собственно, тренироваться мы будем на встроенном в R векторе названий месяцев, он называется month.abb. Нам его необязательно создавать, он уже есть у вас, если вы просто напишете month.abb и выполните эту команду, вам покажут сокращенные названия месяцев. Если мы захотим из этого вектора извлечь первый элемент — январь, то мы просто в квадратных скобках напишем число 1. Но что делать, если мы хотим извлечь несколько? Самый очевидный код, если мы просто перечислим те элементы, которые хотим, он не будет работать. Например, если мы хотим извлечь зимние месяцы и напишем [12, 1, 2] через запятую, мы-то ожидаем увидеть декабрь, январь, февраль, но на самом деле R выдаст нам ошибку. Он скажет incorrect number of dimensions, это значит, что вектор — одномерный объект, а мы использовали такой синтаксис, который не подходит для одномерных объектов. У всех элементов вектора есть только один адрес, и мы должны в квадратные скобки передать какую-то одну сущность, все эти индексы объединить во что-то. В что мы умеем объединять какие-то числа? В векторы. Если мы индексы объединим в вектор, у нас все получится. Давайте попробуем извлечь только зимние месяцы из нашего вектора месяцев. Мы можем заранее создать вектор из номеров при помощи функции c и сохранить его в переменную id_winter — идентификаторы зимних месяцев. В принципе, этот код будет легче читаться, но так делать необязательно. Если мы теперь в квадратные скобки передадим этот вектор из индексов, результат будет как раз такой, как нужно: мы получим декабрь, январь и февраль. Но необязательно создавать вектор индексов заранее, можно его не сохранять в переменную, а сразу записать внутри квадратных скобок. Если у вас не слишком длинный вектор, то это даже можно будет прочитать. Если вы хотите извлечь несколько элементов подряд, то это сделать еще легче, потому что вы можете сразу в квадратные скобки передать вектор из номеров, созданный при помощи оператора двоеточие. Несколько элементов подряд, например, первые три месяца года — январь, февраль, март, можно при помощи этой инструкции извлечь. Если вы вдруг захотите обратиться к несуществующему элементу вектора и, например, захотите извлечь из года 13-й месяц, то R вам совершенно справедливо ответит, что такого месяца нет. И напишет NA — not available. Если вы вдруг захотите исключить из вашего вектора какие-то элементы, то вам нужно использовать индексы со знаком минус. Например, мы можем получить год без января с легкостью. Мы просто напишем перед единицей минус — это значит, что из вектора нужно убрать элемент под номером 1. Если вы хотите исключить сразу несколько элементов, вы можете создать вектор, в котором все элементы будут отрицательными. Вы можете отдельно попробовать вот этот кусочек выполнить в консоли и убедитесь, что там будет написано −12, −1 и −2. И тогда оператор квадратные скобки поймет, что нужно эти три элемента исключить. И мы получим год без зимы. В следующем видео мы рассмотрим, каким образом можно использовать логические операторы в квадратных скобках для фильтрации данных.