Extract parts of a Container at given indices. If an index is invalid, an error is signaled. If given as a string, the element matching the name is returned. If there are two or more identical names, the value of the first match (i.e. leftmost element) is returned. Indices can be letters or numbers, or both at the same time.
Usage
at(.x, ...)
# S3 method for class 'Container'
at(.x, ...)
# S3 method for class 'dict.table'
at(.x, ...)
Value
For Container
, returns the values at the given indidces.
For dict.table
, returns the columns at the given indices.
See also
peek_at()
for less strict extraction
Examples
# Container
co = container(a = 1, 2, b = 3, 4)
at(co, 1:3)
#> [a = 1, 2, b = 3]
at(co, "a", "b", 2)
#> [a = 1, b = 3, 2]
try(at(co, "x")) # index 'x' not found
#> Error : index 'x' not found
try(at(co, 1:10)) # index 5 exceeds length of Container
#> Error : index 5 exceeds length of Container, which is 4
# Dict
d = dict(a = 1, b = 3)
at(d, 1:2)
#> {a = 1, b = 3}
at(d, "a", 2)
#> {a = 1, b = 3}
try(at(d, "x")) # index 'x' not found
#> Error : index 'x' not found
try(at(d, 1:3)) # index 5 exceeds length of Dict
#> Error : index 3 exceeds length of Dict, which is 2
# dict.table
dit = dict.table(a = 1:3, b = 4:6)
at(dit, "a")
#> <dict.table> with 3 rows and 1 column
#> a
#> <int>
#> 1: 1
#> 2: 2
#> 3: 3
at(dit, 2)
#> <dict.table> with 3 rows and 1 column
#> b
#> <int>
#> 1: 4
#> 2: 5
#> 3: 6
at(dit, "a", 2)
#> <dict.table> with 3 rows and 2 columns
#> a b
#> <int> <int>
#> 1: 1 4
#> 2: 2 5
#> 3: 3 6
try(at(dit, "x")) # index 'x' not found
#> Error : index 'x' not found
try(at(dit, 1:3)) # index 3 exceeds length of dict.table
#> Error : index 3 exceeds length of dict.table, which is 2