Comece agoraComece grátis

Muito elegante

Variáveis podem ter mais de uma classe. Nesse caso, class() (docs) retorna um vetor de caracteres com comprimento maior que um.

Da mesma forma, você pode definir múltiplas classes atribuindo um vetor de caracteres a class(). As classes devem ser ordenadas da mais específica para a mais geral, da esquerda para a direita, já que você quer começar pelo comportamento mais direcionado ao seu objeto. Por exemplo:

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

Você pode verificar as outras classes usando a função genérica inherits() (docs). Por exemplo:

inherits(x, "vowels")

Este exercicio faz parte do curso

Programação Orientada a Objetos com S3 e R6 em R

Ver curso

Instruções do exercicio

A variável kitty já foi pré-definida no seu ambiente de trabalho.

  • Visualize kitty digitando seu nome.
  • Atribua as classes "cat", "mammal" e "character" à variável kitty.
  • Verifique que kitty tem as classes "cat", "mammal", "character" (uma de cada vez, nessa ordem) usando inherits().
  • Verifique que kitty ainda é um vetor de caracteres usando is.character().
  • Verifique que kitty não tem a classe "dog".

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# View the kitty
kitty

# Assign classes
___ <- ___

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

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Editar e Executar Código