Try to access element and return some default value if not found.
In contrast to [at2()]
, this function provides a less stricter element
access, that is, it remains valid even if peeked elements don't exist.
Usage
peek_at2(x, index, default = NULL)
# S3 method for class 'Container'
peek_at2(x, index, default = NULL)
# S3 method for class 'dict.table'
peek_at2(x, index, default = NULL)
Value
For Container
, returns the value at the given index or (if not
found) the given default value.
For dict.table
, returns the column named index
if it exist
otherwise the given default
value. If the default length does not match
the number of rows, it is recycled accordingly and a warning is given,
unless the default value has a length of 1, in which case recycling is
done silently.
See also
at2()
for strict element extraction
Examples
# Container
co = container(a = 1, 2, b = 3, 4)
peek_at2(co, 1)
#> [1] 1
peek_at2(co, "a")
#> [1] 1
peek_at2(co, "x")
#> NULL
peek_at2(co, "x", default = 0)
#> [1] 0
# Dict
d = dict(a = 1, b = 1:3)
peek_at2(d, "b")
#> [1] 1 2 3
peek_at2(d, "x")
#> NULL
peek_at2(d, "x", default = 4:7)
#> [1] 4 5 6 7
# dict.table
dit = dict.table(a = 1:3, b = 4:6)
peek_at2(dit, "a")
#> [1] 1 2 3
peek_at2(dit, 1)
#> [1] 1 2 3
peek_at2(dit, 3)
#> NULL
peek_at2(dit, 3, default = 9)
#> [1] 9 9 9
peek_at2(dit, "x")
#> NULL
peek_at2(dit, "x", default = 0)
#> [1] 0 0 0