Структура данных словаря в R

В R у меня есть, например:

> foo <- list(a=1,b=2,c=3)

Если я набираю foo, я получаю:

$a
[1] 1

$b
[1] 2

$c
[1] 3

Как я могу просмотреть foo, чтобы получить список "ключей"? В этом случае (a, b, c).

Ответ 1

> names(foo)
[1] "a" "b" "c"

Ответ 2

Список R может иметь именованные элементы и поэтому функционирует как структура словаря. Вы можете просто:

> names(foo)
[1] "a" "b" "c"

Если вы ищете структуру словаря, вы также можете рассмотреть использование пакетов hash, которые предоставляют Python и Perl, такие как словарь/хэш с ожидаемыми функциями, такими как keys, поэтому вы можете сказать:

keys(hash)

В терминах производительности список служит лучшим словарем, чем хеш для нескольких сотен элементов или меньше (< 200) из-за стоимости хеширования. Хэш-пакет намного лучше подходит для очень больших словарей.