如何检查 R 对象是否具有特定属性? 例如,我想检查一个向量是否具有“标签”属性。我怎样才能做到这一点?是否已经存在执行此操作的函数?
my_vector <- c(1, 2, 3)
my_vector_labelled <- `attr<-`(my_vector, "labels", c(a = 1, b = 2, c = 3))
假设有一个名为 has_attribute(x, attr)
的函数。预期的结果是:
> has_attribute(my_vector, "labels")
FALSE
> has_attribute(my_vector_labelled, "labels")
TRUE
最佳答案
两种方式:
%in% names(attributes(..)
:"labels" %in% names(attributes(my_vector)) # [1] FALSE "labels" %in% names(attributes(my_vector_labelled)) # [1] TRUE
is.null(attr(..,""))
:is.null(attr(my_vector, "labels")) # [1] TRUE # NOT present is.null(attr(my_vector_labelled, "labels")) # [1] FALSE # present
(也许
!is.null(attr(..))
是首选?)
关于r - 如何检查 R 对象是否具有特定属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71698332/