←
PDF 334 / 520 attribute values with attr() or see them all at once with attributes():
→
English · PDF 334
Original PDF page 334
中文 · PDF 334

使用 attr() 设置属性值,或使用 attributes() 一次性查看所有属性:

x <- 1:10 attr(x, "greeting") #> NULL attr(x, "greeting") <- "Hi!" attr(x, "farewell") <- "Bye!" attributes(x) #> $greeting #> [1] "Hi!" #> #> $farewell #> [1] "Bye!"

有三个非常重要的属性,它们被用来实现 R 的基础部分:

  • 名称用于为向量的元素命名。
  • 维度(简称 dims)使向量的行为类似于矩阵或数组。
  • 类用于实现 S3 面向对象系统。

你之前已经见过名称了,而维度我们不会介绍,因为本书不使用矩阵。剩下要描述的是类,它控制泛型函数的工作方式。泛型函数是 R 中面向对象编程的关键,因为它们使函数针对不同类别的输入表现出不同的行为。关于面向对象编程的详细讨论超出了本书的范围,但你可以在 Advanced R 中阅读更多相关内容。

下面是一个典型的泛型函数的样子:

as.Date #> function (x, ...) #> UseMethod("as.Date") #> <bytecode: 0x7fa61e0590d8> #> <environment: namespace:base>

对 "UseMethod" 的调用意味着这是一个泛型函数,它会根据第一个参数的类调用特定的方法,即一个函数。(所有方法都是函数;但并非所有函数都是方法。)你可以使用 methods() 列出某个泛型的所有方法: