Как создавать свои собственные списки в R?

Как создавать свои собственные списки в R Изучение

Структура данных списка встречается во многих различных языках программирования. В R списки особенно полезны, когда вы хотите суммировать данные, принадлежащие разным типам данных R.

Для чего используются R-списки?

Списки — это универсальная структура данных, которая также является отдельным типом данных в R. Списки особенно подходят в средах динамического программирования, т. е. когда необходимо гибко добавлять и удалять элементы различных типов данных. В отличие от R-векторов, для элементов списка не имеет значения, какого они типа данных: возможность смешивать типы данных в списке является одним из основных преимуществ R-списков. Поскольку вы можете вкладывать списки по своему усмотрению, можно использовать R-списки для представления сложных проблем в исходном коде.

Создать список в R: Как создавать списки R

list() function

Чтобы создать простой R-список, вы можете list()использовать одноименную функцию, передавая ей элементы для добавления в ваш список.

liste <- list(1, TRUE, "Hallo Welt!", c(1,2,3,4))

В этом примере кода был создан список из четырех значений. Как видите, эти значения не имеют одинакового типа данных и их все равно можно сгруппировать в один список.

Вы также можете создать список именованных элементов в R. Это обеспечивает легкий доступ к определенным элементам из вашего R-списка.

person <-list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino"))

Вы также можете передавать в качестве элементов другие списки и таким образом, например, объединять разные списки в одну запись данных:

personen <- list(list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino")), list(name = "Mia Musterfrau", alter = 32, hobbys = c("Theater, Computerspiele")), list(name = "Mika Mustermensch", alter =23, hobbys = c("Sport, Musik")))

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

Вы также можете создавать списки из векторов R, преобразуя их в список. R также предоставляет функцию для этого.

vektor <- c(1,2,3,4)
liste <- as.list(vektor)

Преобразование списков в другие структуры данных

Хотя R-списки представляют собой универсальную структуру данных, для определенных целей вам могут понадобиться другие структуры данных, такие как векторы или фреймы данных. Если да, просто преобразуйте свой список.

R-List to Vector: как создавать векторы из списков

Если вы хотите превратить свой список в R-вектор, используйте функцию. Это принимает R-List в качестве параметра передачи и преобразует его в вектор. Список, который вы передаете функции, также может быть многомерным. Вызов часто бывает полезен, когда вы хотите представить сложные иерархии в простой векторной форме.unlist()unlist()

liste <- list(1, 2, 3, 4)
vektor <- unlist(liste)

Преобразование списка, содержащего данные разных типов данных, в вектор может привести к нежелательному и неопределенному поведению, поскольку по умолчанию векторы в R могут хранить только данные одного и того же типа данных. Поэтому вызов рекомендуется только в том случае, если элементы в вашем списке имеют одинаковый тип данных.unlist()

Читайте также:  Что такое объектно-ориентированное программирование (ООП)?

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

liste <- list(1, TRUE, "Hallo Welt!", c(1,2,3,4))
vektor <- unlist(liste)

R-List в фрейм данных: конвертируйте списки в фреймы данных

Кадры данных R используются, помимо прочего, для табличного представления наборов данных. Поэтому многомерные списки, в частности, могут быть с пользой преобразованы в кадры данных R. Следует отметить, что списки должны иметь одинаковое количество элементов. R предоставляет функцию преобразования списка R в кадр данных, которая ожидает преобразования списка в качестве параметра передачи.data.frame()

personen <- list(name=c("Max", "Mia", "Mika"), alter=c(27, 32, 23))
tabelle <- data.frame(personen)
print(tabelle)

Фрейм данных, созданный приведенным выше кодом, выглядит следующим образом:

name alter
1 Max 27
2 Mia 32
3 Mika 23

Доступ к элементам в R-списках

Для доступа к элементам в вашем списке вы можете использовать индекс или, если доступно, имя нужного элемента.

Доступ через индекс

Для доступа к элементам списка вам понадобится оператор R, в который вы поместите индекс или имя.[[]]

liste <- list(1, TRUE, "Hallo Welt!", c(1,2,3,4))
print(liste[[2]])

Этот код возвращает TRUE, который является вторым элементом в списке. Обратите внимание, что индексация в R начинается с единицы. Если у вас есть предыдущий опыт программирования и вы не просто учитесь программировать, это место, где можно быстро совершить ошибку, поскольку в большинстве других языков программирования индексирование начинается с нуля.

Доступ через имена элементов

Как уже упоминалось, элементам списка в R можно давать имена. При необходимости эти имена можно использовать для доступа к элементам. Существует два разных способа доступа к элементу по имени: вы можете использовать двойные квадратные скобки в сочетании с именем элемента в виде строки R или использовать знак доллара, за которым следует имя элемента. Пример кода помогает проиллюстрировать:

person <-list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino"))
print(person[["name"]])
print(person$name)

В обоих случаях оператор печати выводится «Max Mustermann«на экран.

Читайте также:  Основные принципы и применение изолятов в Dart

Список функций в R: наиболее важные функции

При работе со списками существует ряд полезных функций R, которые помогают выполнять определенные операции.

append()

С помощью вы можете добавлять элементы в конец списка. Функция ожидает список, к которому должен быть добавлен элемент, в качестве первого параметра передачи, а элемент, который должен быть вставлен, в качестве второго параметра.append()

liste <-list(1,2,3,4)
append(liste, 5)

Функция -List в R — не единственный способ добавить элементы в список. Обозначение индекса с двойными квадратными скобками, в котором вы используете индекс, который еще не существует, часто работает быстрее:append()

liste <-list(1,2,3,4)
liste[[5]] <-5

length()

Вы можете узнать, сколько элементов содержит ваш список, вызвав команду R. Функция ожидает список, длина которого вас интересует, в качестве параметра передачи.length()

liste <- list(1,2,3,4)
print(length(liste))

concatenation with c()

В R вы можете объединить два списка в один. Для этого используйте функцию, которая принимает оба списка в качестве параметров и возвращает объединенный список.c()

liste1 <- list(1,2,3,4)
liste2 <- list(5,6,7,8)
liste_konkateniert <- c(liste1, liste2)

names()

Если вы создали R-список с именами, используйте функцию R-List для отображения названий объектов в вашем списке. Функция ожидает список в качестве параметра передачи.names()

person <-list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino"))
bezeichner <- names(person)

Оцените статью
Блог о программировании
Добавить комментарий