Как использовать значение переменной в качестве ключа в R-среде? - PullRequest
23 голосов
/ 15 сентября 2011

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

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

Например:

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

Вывод «ключ», что означает, что я получаю отображение из строки «ключ» на значение 4. Я действительно хочу, чтобы этот код сделал, чтобы отобразить строку «ddd» на значение 4.

Как мне этого добиться?

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

1 Ответ

30 голосов
/ 15 сентября 2011

Как сказано в ?"$":

 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...