r - 如何检查 R 对象是否具有特定属性?

标签 r

如何检查 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/

相关文章:

r - 安装包 : fatal error: stdlib. h 时出错:没有这样的文件或目录

r - 如何从 R 中运行多命令 Linux shell 脚本?

r - 编制 Rmd 文件时如何请求提前退出?

在 Shiny 的应用程序中关闭它时重置模态

R Shiny : Isolate dynamic output within dynamic tabs

R 循环并从 yahoo.com 下载股票价格

r - 尝试在 R 中重新创建特定类型的数据透视表

r - 降低R中的中缀运算符优先级?

python - RPy 中 R 的 pdIndent 函数

r - 无法使用 Rserve 将数据写入 csv