开始使用免费开始使用

层次分明的类

变量可以同时拥有多个类。在这种情况下,class()文档)会返回长度大于 1 的字符向量。

同样,您也可以通过给 class() 赋值一个字符向量来设置多个类。类名应从左到右按"更具体 → 更通用"的顺序排列,因为您希望先匹配对该对象最有针对性的行为。例如:

x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")

您可以使用通用函数 inherits()文档)来检查是否具有其他类。例如:

inherits(x, "vowels")

本练习是课程的一部分

R 中的 S3 与 R6 面向对象编程

查看课程

练习说明

变量 kitty 已在您的工作区中预定义。

  • 输入变量名以查看 kitty
  • 将类 "cat""mammal""character" 赋给变量 kitty
  • 依次使用 inherits() 检查 kitty 是否具有 "cat""mammal""character" 这几个类(一次检查一个,按此顺序)。
  • 使用 is.character() 检查 kitty 仍然是字符向量。
  • 检查 kitty 不具有类 "dog"

交互式实操练习

通过完成这段示例代码来试试这个练习。

# View the kitty
kitty

# Assign classes
___ <- ___

# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
编辑并运行代码