Как использовать значение переменной в качестве ключа в R-среде?
В языке программирования R я хочу использовать хеш-таблицу.
Как использовать значение переменной в качестве ключа для среды?
Например:
map <- new.env(hash=T, parent=emptyenv())
key <- 'ddd'
map$key <- 4
print(ls(map))
>>[1] "key"
Выход - это "ключ", что означает, что я получаю сопоставление от строки "ключ" до значения 4. То, что я действительно хочу, чтобы этот код выполнял, - это сопоставить строку "ddd" со значением 4.
Как я могу это достичь?
PS. Я не использую именованный список, потому что он медленный с большим количеством элементов, поскольку он не использует хэширование для выполнения поиска.
Ответы
Ответ 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