Comece agoraComece grátis

Criando um método S3 (2)

Se nenhum método adequado for encontrado para um genérico, um erro é gerado. Por exemplo, no momento, get_n_elements() só tem um método disponível para data.frames. Se você passar uma matriz para get_n_elements(), verá um erro.

> get_n_elements(matrix())
Error: no applicable method for 'get_n_elements' applied to an object of class "c('matrix', 'array', 'logical')"

Em vez de escrever dezenas de métodos para cada tipo de entrada, você pode criar um método que trate todos os tipos que não têm um método específico. Isso é chamado de método default; ele sempre tem o nome generic.default. Por exemplo, print.default() (docs) imprimirá qualquer tipo de objeto que não tenha seu próprio método print() (docs).

Este exercicio faz parte do curso

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

Ver curso

Instruções do exercicio

A função genérica get_n_elements() e um método para data.frames já foram definidos no seu ambiente de trabalho.

  • Use ls.str() (docs) para explorar seu ambiente.
  • Escreva um método S3 default para get_n_elements().
    • O nome da função deve ser o nome do genérico, depois um . e então default.
    • Os argumentos de entrada devem ser x e ....
    • O corpo da função deve ser uma única linha, retornando o número de elementos em um objeto arbitrário. Use a mesma técnica do jogo de xadrez no exercício Make it Classy (1).
  • Chame seu método no conjunto de dados ability.cov (docs) e atribua o resultado à variável n_elements_ability.cov.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# View predefined objects
___

# Create a default method for get_n_elements
___ <- ___




# Call the method on the ability.cov dataset
n_elements_ability.cov <- ___
Editar e Executar Código