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

Эквивалент python dict в R

Я хочу сделать эквивалент python dict в R. В принципе, на python у меня есть:

visited = {}

if atom_count not in visited:
  Do stuff
  visited[atom_count] = 1

Идея заключается в том, что если я увидел этот конкретный, atom_count, я посетил [atom_count] = 1. Таким образом, если я снова увижу этот atom_count, я не "Делаю материал". Atom_Count - целое число.

Спасибо!

4b9b3361

Ответ 1

Ближайшая вещь к python dict в R - это просто список. Как и большинство типов данных R, списки могут иметь атрибут имен, который позволяет спискам действовать как набор пар имя-значение:

> l <- list(a = 1,b = "foo",c = 1:5)
> l
$a
[1] 1

$b
[1] "foo"

$c
[1] 1 2 3 4 5

> l[['c']]
[1] 1 2 3 4 5
> l[['b']]
[1] "foo"

Теперь для обычного отказа от ответственности: они не совсем одинаковы; будут различия. Таким образом, вы будете разочаровываться, пытаясь буквально использовать списки именно так, как вы можете использовать dict в python.

Ответ 2

Я считаю, что использование хэш-таблицы (создание новой среды) может быть решением вашей проблемы. Я бы сказал, как это сделать, но я только что сделал это вчера на talkstats.com.

Если ваш словарь большой и всего два столбца, то это может быть путь. Здесь ссылка на поток talkstats с образцом R-кода:

HASH TABLE LINK