Add elements to container-like objects.

add(.x, ...)

ref_add(.x, ...)

# S3 method for Container
add(.x, ...)

# S3 method for Container
ref_add(.x, ...)

# S3 method for Dict
add(.x, ...)

# S3 method for Dict
ref_add(.x, ...)

# S3 method for dict.table
add(.x, ...)

# S3 method for dict.table
ref_add(.x, ...)

Arguments

.x

an R object of the respective class.

...

elements to be added.

Value

For Container, an object of class Container (or one of the respective derived classes).

For dict.table an object of class dict.table.

Note

While add uses copy semantics ref_add works by reference.

If .x is a Container, Set or Deque object, the elements being added can (but must not) be named.

If .x is a Dict or dict.table object, all elements must be of the form key = value. If one of the keys already exists, an error is given.

Examples


co = container(1)
add(co, 1, b = 2, c = container(1:3))
#> [1, 1, b = 2, c = [(1L 2L 3L)]]

s = setnew(1)
add(s, 1, 1, b = 2, "1", co = container(1, 1))
#> {1, b = 2, "1", co = [1, 1]}

d = dict(a = 1)
add(d, b = 2, co = container(1:3))
#> {a = 1, b = 2, co = [(1L 2L 3L)]}

try(add(d, a = 7:9))  # key 'a' already in Dict
#> Error : name 'a' exists already

dit = dict.table(a = 1:3)
add(dit, b = 3:1, d = 4:6)
#> <dict.table> with 3 rows and 3 columns
#>    a b d
#> 1: 1 3 4
#> 2: 2 2 5
#> 3: 3 1 6

try(add(dit, a = 7:9))  # column 'a' already exists
#> Error : name 'a' exists already

dit = dict.table(a = 1:3)
add(dit, b = 3:1, d = 4:6)
#> <dict.table> with 3 rows and 3 columns
#>    a b d
#> 1: 1 3 4
#> 2: 2 2 5
#> 3: 3 1 6

try(add(dit, a = 7:9))  # column 'a' already exists
#> Error : name 'a' exists already