Обложка канала

R4marketing | канал Алексея Селезнёва | Язык R

Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.

R4marketing | канал Алексея Селезнёва | Язык R

4 года назад
Открыть в
​​Отличная картинка, которая иллюстрирует списки в R, и работу с их элементами. 1. Пример списка. По сути список это контейнер для хранения других объектов, в том числе и других списков. В нашем примере перечница, в которой отдельные элементы - пакетики с перцем, в каждом пакете есть содержимое - перец. 2. Указав индекс необходимого элемента в одинарных квардратных скобках, мы получим на выходе также список, но внутри останется только те его элементы, индексы которых мы перечислили в квадратных скобках. 3. Для извлечения конкретного элемента ИЗ списка необходимо указать его индекс в двойных квадратных скобках. Таким образом мы вытащили пакет с перцем из перечницы. 4. Сам пакет с перцем также является контейнером, если мы хотим извлечь элемент из вложенного списка то мы будет использовать ещё одни двойные скобки, в которых укажем индекс элемента вложенного списка, которые хотим получить. Так мы добрались до содержимого пакетика, т.е. до крайнего элемента нашей списочной структуры. Удобный синтаксис обращения с элементам списка помощью purrr:pluck() Довольно изящный синтаксис обращения к элементам списка предоставляет функция purrr::pluck().
library(purrr)

# Обращение к элементу списка по индексу:
pluck(x, 1)
x[[1]]

pluck(x, 1, 2)
x[[1]][[2]]

# Смешенное обращение к элементам списка по индексам их именам
pluck(x, 1, 2, "elt")
x[[1]][[2]][["elt"]]
Ссылки: - изображение и идея заимствованы из твиттера Хедли Викхема. #заметки_по_R