Last data update: 2014.03.03

R: assign key-value pair(s) to a hash
.setR Documentation

assign key-value pair(s) to a hash

Description

.set is an internal method for assigning key-value pairs to a hash. Normally, there is no need to use this function. Convenient access is provided by: hash, $, [ and [[ and their corresponding replacement methods.

.set takes 4 types of arguments: explicitly named key and value vectors named key-value pairs named vectors implicit key-value pairs

The keys are automatically coerced to valid keys and are restricted to character classes. Values are free to be any valid R object.

Usage

  .set( hash, ... )

Arguments

hash

An hash object on which to set the key-value pair(s)

...

Any of several ways to specify keys and values. See Details.

Details

.set sets zero or more key-value pairs. If the key(s) already exist, existing values are silently clobbered. Otherwise, a new value is saved for each key. Keys and values are by the ... argument. If ... is:

made only of explicitly named keys and values arguments then these are taken as the keys and values respectively.

a named list, then the names are taken as keys and list elements are taken as values.

a named vector, then the names are taken as keys. Vector elements are taken as values.

of length two, keys are taken from the first element, values from the second.

Keys are coerced to type character.

Keys and values are assigned to the hash as follows:

IF keys and values are the same length, key-value pairs are added to the hash pairwise.

IF keys is a vector of length 1, then this key is assigned the entire values vector.

IF values is a vector of length 1, each key of keys is assigned the value given by values

IF keys and values are of different lengths, both greater than one, then the assignment is considered ambiguous and an error is thrown.

Value

.set exists solely for its side-effects. An invisible NULL is returned.

Author(s)

Christopher Brown

See Also

See also hash, environment

Examples


  h <- hash()

  .set( h, keys=letters, values=1:26 )
  .set( h, a="foo", b="bar", c="baz" )
  .set( h, c( aa="foo", ab="bar", ac="baz" ) )
  clear(h)
  .set( h, letters, values )

Results