Подтвердить что ты не робот

Как использовать значение переменной в качестве ключа в R-среде?

В языке программирования R я хочу использовать хеш-таблицу.

Как использовать значение переменной в качестве ключа для среды?

Например:

map <- new.env(hash=T, parent=emptyenv())
key <- 'ddd'
map$key <- 4
print(ls(map))
>>[1] "key"

Выход - это "ключ", что означает, что я получаю сопоставление от строки "ключ" до значения 4. То, что я действительно хочу, чтобы этот код выполнял, - это сопоставить строку "ddd" со значением 4.

Как я могу это достичь?

PS. Я не использую именованный список, потому что он медленный с большим количеством элементов, поскольку он не использует хэширование для выполнения поиска.

4b9b3361

Ответ 1

Как говорится в ?"$":

 Both ‘[[’ and ‘$’ select a single element of the list.  The main
 difference is that ‘$’ does not allow computed indices, whereas
 ‘[[’ does.  ‘x$name’ is equivalent to ‘x[["name", exact =
 FALSE]]’.  Also, the partial matching behavior of ‘[[’ can be
 controlled using the ‘exact’ argument.

Итак, вы хотите:

map[[key]] <- 4
> print(ls(map))
[1] "ddd" "key"
> map[[key]]
[1] 4