Objetos S3 versus S4

Qual a estrutura de um objeto S4? Funcionam sempre como listas? Por que eles são melhores e mais seguros do que os S3? O que são slots e como faço para acessar esse tipo de objeto, ou seja, abri-los em formato tibble de maneira a conseguir visualizar os dados claramente? Talvez sejam dúvidas básicas, mas não estou encontrando explicações simples na internet. Na verdade, talvez o assunto seja complexo mesmo…

Acho que a melhor explicação sobre isso está aqui: https://adv-r.hadley.nz/oo-tradeoffs.html#s3-s4

O sistema S4 é bem mais formal do que o S3 e aproxima o R de linguagens que orientadas a objetos. Os objetos S4 parecem bastante listas, mas a principal diferença é que eles são mutáveis, diferente das listas. Os slots são como campos da lista e acessamos usando o @ por exemplo: objeto@x acessa o slot com nome x do objeto. O @ é análogo ao $ para listas.

Em geral uma boa forma de ver a estrutura de um objeto no R é usar str(objeto).

Aqui também tem uma visão geral sobre objetos S4: http://adv-r.had.co.nz/S4.html
Esse capítulo foi retirado na nova versão do Advanced R.

1 Curtida