Eu queria saber quais são as diferenças entre modo, classe e tipo de objetos R? O tipo de um objeto R pode ser obtido pela função typeof (), mode by mode () e classe por class ().
Também outras funções e conceitos similares que eu perdi?
Obrigado e cumprimentos!
Respostas:
O
class()
é usado para definir / identificar o "tipo" de um objeto do ponto de vista da programação orientada a objetos em R.qualquer função genérica que tenha um método "número inteiro" será usada.
typeof()
fornece o "tipo" de objeto do ponto de vista de R, enquantomode()
fornece o "tipo" de objeto do ponto de vista de Becker, Chambers & Wilks (1988). Este último pode ser mais compatível com outras implementações S, de acordo com o manual R Language Definition .Eu provavelmente erraria no uso
typeof()
na maioria dos casos, a menos que fosse para passar objetos R para código compilado, ondestorage.mode()
será útil.Isso é discutido de maneira útil na definição da linguagem R, conforme vinculado acima.
fonte
<-
e=
para atribuição de variáveis.De: https://www.mail-archive.com/[email protected]/msg17169.html :
'mode' é uma classificação mutuamente exclusiva de objetos de acordo com sua estrutura básica. Os modos 'atômicos' são numéricos, complexos, de caráter e lógicos. Objetos recursivos têm modos como 'lista' ou 'função' ou alguns outros. Um objeto tem um e apenas um modo.
'class' é uma propriedade atribuída a um objeto que determina como funções genéricas operam com ele. Não é uma classificação mutuamente exclusiva. Se um objeto não possui uma classe específica atribuída a ele, como um vetor numérico simples, sua classe geralmente é igual ao seu modo, por convenção.
Alterar o modo de um objeto é freqüentemente chamado de 'coerção'. O modo de um objeto pode mudar sem necessariamente alterar a classe.
fonte
A principal diferença entre classe e typeof é que a primeira pode ser definida pelo usuário, mas o tipo não. Por exemplo, defina uma lista
Dar um determinado nome de classe a um objeto definido pelo usuário é muito útil para escrever programas. Ele permite marcar objetos definidos pelo usuário de maneira semelhante ao que acontece nas linguagens de programação orientadas a objetos.
fonte
R
documentação detypeof
eclass
, a afirmação sobre "diferença principal" está incorreta.class
é um atributo de um objeto que pode ser atribuído independentemente do seu modo de armazenamento interno, enquanto "typeof determina o tipo (R interno) ou o modo de armazenamento de qualquer objeto". Um descreve uma característica lógica , enquanto o outro é uma característica física de um objeto.