is_named {rlang} | R Documentation |
Is object named?
Description
-
is_named()
is a scalar predicate that checks thatx
has anames
attribute and that none of the names are missing or empty (NA
or""
). -
is_named2()
is likeis_named()
but always returnsTRUE
for empty vectors, even those that don't have anames
attribute. In other words, it tests for the property that each element of a vector is named.is_named2()
composes well withnames2()
whereasis_named()
composes withnames()
. -
have_name()
is a vectorised variant.
Usage
is_named(x)
is_named2(x)
have_name(x)
Arguments
x |
A vector to test. |
Details
is_named()
always returns TRUE
for empty vectors because
Value
is_named()
and is_named2()
are scalar predicates that
return TRUE
or FALSE
. have_name()
is vectorised and returns
a logical vector as long as the input.
Examples
# is_named() is a scalar predicate about the whole vector of names:
is_named(c(a = 1, b = 2))
is_named(c(a = 1, 2))
# Unlike is_named2(), is_named() returns `FALSE` for empty vectors
# that don't have a `names` attribute.
is_named(list())
is_named2(list())
# have_name() is a vectorised predicate
have_name(c(a = 1, b = 2))
have_name(c(a = 1, 2))
# Empty and missing names are treated as invalid:
invalid <- set_names(letters[1:5])
names(invalid)[1] <- ""
names(invalid)[3] <- NA
is_named(invalid)
have_name(invalid)
# A data frame normally has valid, unique names
is_named(mtcars)
have_name(mtcars)
# A matrix usually doesn't because the names are stored in a
# different attribute
mat <- matrix(1:4, 2)
colnames(mat) <- c("a", "b")
is_named(mat)
names(mat)
[Package rlang version 1.1.4 Index]