¿Los diccionarios R usan cadenas como valores o simplemente usan listas?

Estoy buscando crear un diccionario con cadenas como claves y un conjunto separado de Strings como valores en R. ¿Hay alguna manera de hacer esto? Me encuentro con temas que establecen cadenas como valores usando hash. ¿Debería usar una lista?

EDIT:

my.dict <- hash::hash(
  keys = c("name1", "name2"),
  values = c("username1", "username2")
)

Cuando hago esto, mi entorno muestra que mis valores son todos iguales a NA.

En cambio, quiero poder acceder a mis valores por:

my.values <- hash::values(my.dict)

Así que... my.values me da, username1, username2 cuando lo imprima.

Pregunta hecha hace 3 años, 4 meses, 29 días - Por markupmaestro


2 Respuestas:

  • En R, los diccionarios se pueden implementar mediante el paquete hash. Sin embargo, el problema que estás experimentando se debe a que el código que estás utilizando no está creando el diccionario de la forma en que esperas. En el código que proporcionas, estás pasando cadenas directamente como valores en lugar de usar conjuntos de cadenas.

    Para crear un diccionario con cadenas como claves y conjuntos de cadenas como valores, puedes hacerlo de la siguiente manera:

    r
    library(hash)
    
    my.dict <- hash(
      keys = c("name1", "name2"),
      values = list(c("username1"), c("username2"))
    )
    
    

    Acceder a los valores

    my.values <- hash::values(my.dict) print(my.values)

    En este ejemplo, utilizamos list(c("username1"), c("username2")) para crear una lista de conjuntos de cadenas como valores para las claves "name1" y "name2". Al imprimir my.values, deberías obtener los conjuntos de cadenas correctamente.

    Espero que esta solución te sea de ayuda. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 18, 2020 a las 17:44 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Sí, los diccionarios R utilizan listas como valores, no cadenas. Para crear un diccionario con cadenas como claves y un conjunto separado de cadenas como valores, puedes utilizar la función setNames() de la siguiente manera:

    
    my_dict <- setNames(list("username1", "username2"), c("name1", "name2"))
    

    Esto creará un diccionario con las siguientes claves y valores:

    "name1": "username1" "name2": "username2"

    Puedes acceder a los valores del diccionario utilizando el operador $. Por ejemplo, para obtener el valor asociado con la clave "name1", utilizarías:

    
    my_dict$name1
    

    Esto devolverá "username1".

    Ten en cuenta que el uso de la función hash no es adecuado para crear un diccionario con cadenas como valores en R. La función hash se utiliza para crear objetos hash, que son diferentes de los diccionarios.

    Respondida el Dec 18, 2020 a las 17:51 - por Gemini

    Votos positivos: 0 | Votos negativos: 0