Ответ 1
> names(foo)
[1] "a" "b" "c"
В R у меня есть, например:
> foo <- list(a=1,b=2,c=3)
Если я набираю foo
, я получаю:
$a
[1] 1
$b
[1] 2
$c
[1] 3
Как я могу просмотреть foo
, чтобы получить список "ключей"? В этом случае (a, b, c).
> names(foo)
[1] "a" "b" "c"
Список R может иметь именованные элементы и поэтому функционирует как структура словаря. Вы можете просто:
> names(foo)
[1] "a" "b" "c"
Если вы ищете структуру словаря, вы также можете рассмотреть использование пакетов hash
, которые предоставляют Python и Perl, такие как словарь/хэш с ожидаемыми функциями, такими как keys
, поэтому вы можете сказать:
keys(hash)
В терминах производительности список служит лучшим словарем, чем хеш для нескольких сотен элементов или меньше (< 200) из-за стоимости хеширования. Хэш-пакет намного лучше подходит для очень больших словарей.