equivalente a un dict de python en R

Quiero hacer el equivalente de un dict de python en R. Básicamente, en python tengo:

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

La idea es que si veo ese atom_count específico, he visitado [atom_count] = 1. Por lo tanto, si veo ese atom_count de nuevo, no hago “Do Stuff”. Atom_Count es un entero.

¡Gracias!

Lo más parecido a un dict de python en R es simplemente una lista. Como la mayoría de los tipos de datos R, las listas pueden tener un atributo de nombres que puede permitir que las listas actúen como un conjunto de pares nombre-valor:

 > 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" 

Ahora, para el descargo de responsabilidad habitual: no son exactamente iguales; Habrá diferencias. Así que invitarás a la decepción para tratar de usar listas literalmente de la misma forma en que podrías usar un dict en python.

Creo que el uso de una tabla hash (crear un nuevo entorno) puede ser la solución a su problema. Escribía cómo hacer esto, pero lo hice ayer día en talkstats.com.

Si su diccionario es grande y solo tiene dos columnas, entonces este puede ser el camino a seguir. Aquí está el enlace al hilo de talkstats con código R de muestra:

Enlace de tabla de hash

Si, como en su caso, solo quiere que su “diccionario” almacene valores del mismo tipo, simplemente puede usar un vector y nombrar cada elemento.

 > l <- c(a = 1, b = 7, f = 2) > l abf 1 7 2 

Si desea acceder a las “teclas”, utilice names .

 > names(l) [1] "a" "b" "f"