[МУЗЫКА] [МУЗЫКА] Любую переменную из датафрейма можно извлечь и работать с ней отдельно. Мы будем с вами продолжать разбирать датафреймы на части, как конструктор, на том же самом примере данных о персонажах «Звёздных войн», которые мы взяли из фанатской базы SWAPI. Чтобы обратиться к переменной датафрейма, нужно использовать оператор в виде знака доллара. Формат у него простой — вы пишете название переменной, в которой сохранён ваш датафрейм, пишете знак доллара и дальше указываете имя переменной. Мы таким образом можем извлечь имена персонажей, мы можем посмотреть, к каким видам относятся наши персонажи, и какой у них вес. Всё это делается в одном и том же формате. И вы видите, что на самом деле, что-то нам подсказывает, что каждая переменная в датафрейме — это вектор. А с векторами мы уже знаем как работать. Мы знаем, как можно извлекать из них какие-то кусочки и как можно использовать их в вычислениях. Давайте попробуем. Давайте попробуем извлекать из векторов значение по их номерам. Например, вдруг нас интересует, как зовут персонажей в первой и шестой строке датафрейма. Что мы делаем? Мы пишем вектор с именами персонажей SW$name и в квадратных скобках пишем индексы, которые нас интересуют внутри вектора. И таким образом, мы узнаём, что этих персонажей зовут Luke Skywalker, а в шестой строке у нас Chewbacca записан. Эти переменные можно использовать в вычислениях. Например, если мы захотим узнать, к каким видам относятся персонажи в нашем датафрейме, и сколько их каждого вида, нам потребуется извлечь вектор с видовой принадлежность и засунуть его в функцию table. Функция table нам посчитает количество уникальных значений каждого класса, и так мы узнаем, что у нас 2 дроида, 5 людей, 1 вуки и одно существо, которое относится к тому же виду, что Мастер Yoda. Мы можем извлекать из переменных датафрейма значения не только по индексам, но и по условию. Например, давайте попробуем выяснить, сколько всего людей. Для этого нам нужно создать логический вектор, который будет принимать значение true там, где значение species написано Human. И сумма по этому логическому вектору будет количество людей. Так мы знаем, что там из 9 объектов 5 человек. Если мы хотим узнать, как их зовут, нам всего лишь нужно использовать тот же самый логический вектор SW$species = Human для фильтрации по другой переменной, по вектору имён, и так мы узнаём имена всех людей. Если мы захотим выяснить, сколько весят люди в нашем датафрейме, нам нужно посчитать средний вес, и у нас получится 85,5 килограмм. Это довольно много, но, если вы внимательно посмотрите на весь датафрейм целиком, то увидите, что там, видимо, Дарт Вэйдер взвешен вместе с доспехами, потому что он весит 202 килограмма. Вот из-за него среднее значение такое большое и получилось. При помощи знака доллар можно не только извлекать переменные из датафрейма и использовать их в вычислениях, можно и создавать новые переменные. Для этого используется очень простой формат — вы просто после знака доллар указываете какой-то новый текстовый идентификатор. Давайте попробуем создать в этом датафрейме новую переменную, в которую будет записан рост персонажей не в сантиметрах, как исходно, а в метрах, и назовём её height_m. Чтобы перевести рост из сантиметров в метры, мы просто каждый элемент вектора height поделим на 100 и эти значения запишем в переменную с выбранным нами текстовым идентификатором. Легко убедиться, что новые переменные создаются и добавляются в конец датафрейма. Если вы при помощи функции head посмотрите, что там внутри, то вы увидите, что в конце появилась новая переменная height_m. Вот эти вот способы манипуляции с датафреймами при помощи оператора квадратные скобки не ограничиваются работой с отдельными переменными. Квадратные скобки можно использовать не только для извлечения значений из векторов внутри датафрейма, но можно использовать для извлечения каких-то более сложных каких-то кусочков. И об этом мы поговорим в следующих нескольких видео.