Programação em R – Parte 3 (Entendendo e Manipulando Objetos)

//Programação em R – Parte 3 (Entendendo e Manipulando Objetos)

Programação em R – Parte 3 (Entendendo e Manipulando Objetos)

@page { margin: 2cm }
p { margin-bottom: 0.25cm; border: none; padding: 0cm; line-height: 115%; text-align: left; page-break-inside: auto; orphans: 2; widows: 2; page-break-after: auto }
a:link { so-language: zxx }

Programação em R - Aprenda Analtics, Big Data & Ciência de Dados

Confira todos os textos da série Programação em R:

Objetos,
seus modos e atributos

As entidades que R opera são
tecnicamente conhecidas como objetos. Os exemplos são vetores de
valores numéricos (reais) ou complexos, vetores de valores lógicos
e vetores de cadeias de caracteres. São conhecidas como estruturas
“atômicas”, pois seus componentes são todos do mesmo
tipo, ou modo, chamados de numérico, complexo, lógico,
caractere.
Os vetores devem ter seus valores todos
do mesmo tipo
. Assim, qualquer vetor dado deve ser
inequivocamente lógico, numérico, complexo, caractere. (A única exceção aparente a esta regra é o “valor”
especial listado como NA para quantidades não disponíveis).
Observe que um vetor pode estar
vazio e ainda possuir um tipo. Por exemplo, o vetor de string de
caracteres vazio é listado como caractere (0) e o vetor numérico
vazio como numérico (0).
R também opera em objetos chamados de
listas, que são sequências
de objetos que individualmente podem ser de qualquer tipo. As listas
são conhecidas como estruturas “recursivas” e não
atômicas, pois seus elementos podem ser listas.
As outras estruturas recursivas são as
de função e expressões. As funções são os objetos que
fazem parte do sistema R, juntamente com funções escritas do
usuário.
As expressões como objetos formam uma parte avançada do R.
Pelo tipo de um objeto, queremos dizer
o tipo básico de seus constituintes fundamentais. Este é um caso
especial de uma “propriedade” de um objeto. Outra
propriedade de cada objeto é seu tamanho. As funções type() e length() podem ser usadas ​​para
descobrir o tipo e o tamanho de qualquer estrutura definida.
R permite mudanças de tipo quase em
qualquer lugar. Por exemplo, com a operação
> z

poderíamos colocar
> digitos

após o qual os digitos vão ser o
vetor de caracteres c(“0”, “1”, “2”,
…, “9”). Uma coerção adicional, ou mudança de tipo,
reconstrói novamente o vetor numérico:
> d

Agora d e z são iguais. Existe uma
grande coleção de funções para coerção de um tipo para outro. É altamente recomendado se familiarizar com estas funções.

Alterar o tamanho de um
objeto

Um objeto “vazio” ainda pode
ter um tipo. Por exemplo
> e

faz de e uma estrutura vetorial
vazia de tipo numérico. Do mesmo modo, usar a função character () cria um
vetor de caracteres vazio, e assim por diante. Uma vez que um objeto
de qualquer tamanho é criado, novos elementos podem ser
adicionados a ele simplesmente dando-lhe um valor de índice fora do
seu alcance anterior. Assim, a operação
> e [3]

faz de e um vetor de
tamanho 3, (os dois primeiros elementos têm valor NA). Isso se aplica a qualquer estrutura, desde que o tipo do(s)
elemento(s) adicional(is) concordem com o tipo do objeto em primeiro
lugar.
Este ajuste automático dos
tamanhos de um objeto é usado frequentemente, por exemplo, na
função scan() para entrada.
Por outro lado, para truncar o tamanho
de um objeto, é necessário apenas uma tarefa para fazê-lo.
Portanto, se alfa for um objeto de tamanho 10, então
> alpha

torna um objeto de tamanho 5
consistindo apenas nos elementos anteriores com índice igual. (Os
índices antigos não são retidos, é claro.) Podemos então reter
apenas os três primeiros valores por
> length(alfa)

e os vetores podem ser estendidos da mesma maneira.

Obtendo e definindo atributos

A função attr(objeto, nome) pode ser
usada para selecionar um atributo específico. Essas funções
raramente são usadas, exceto em circunstâncias bastante especiais
quando algum novo atributo está sendo criado para algum propósito
específico, por exemplo, associar uma data de criação ou um
operador com um objeto R. O conceito, no entanto, é muito
importante.
Alguns cuidados devem ser tomados ao
atribuir ou excluir atributos, uma vez que eles são parte integrante
do sistema de objeto usado em R.
Quando é usado no lado esquerdo de uma
tarefa, ele pode ser usado para associar um novo atributo ao objeto
ou para mudar um existente. Por exemplo
> attr(z, “dim”)

permite que R trate z como se fosse uma
matriz de 10 por 10.

A classe de um objeto

Todos os objetos em R têm uma classe,
relatada pela classe de função. Para vetores simples, é apenas seu tipo, por exemplo “numérico”, “lógico”,
“caractere”
ou “lista”, e “matriz”, “fator” e “data.frame”
são outros valores possíveis.
Um atributo especial conhecido como a
classe do objeto é usado para permitir um estilo orientado ao objeto
de programação em R. Por exemplo, se um objeto tiver classe
“data.frame”, ele será impresso de uma certa maneira, o
gráfico irá exibi-lo graficamente de uma certa maneira, e as
outras chamadas funções genéricas como o summary() reagirão a ele
como um argumento de uma maneira sensível à sua classe.
Para remover temporariamente os efeitos
da classe, use a função unclass(). Por exemplo, se x tiver
a classe “data.frame”, então
> x
irá imprimi-lo em forma de tabela, que é como uma matriz, enquanto que
> unclass (x)
irá imprimi-lo como uma lista comum.
Somente em situações especiais você precisa usar esta facilidade,
mas é quando você está aprendendo a aceitar a idéia de funções
de classe e genéricos.
As funções genéricas e as classes
serão discutidas mais adiante na orientação do Objeto, mas apenas
brevemente.

Conclusão

Estes conceitos relativos aos tipos de objetos utilizados em R são uma das coisas mais interessantes da linguagem, pois ao escolher o tipo de objeto que vai trabalhar na sua aplicação (data frames, por exemplo, são extremamente úteis!) você determina uma séria de facilidades que vai ter ao manipular os dados através desses objetos.
Estas facilidades vão desde poder utilizar operadores como + e * para simplificar manipulações nos dados, até o uso de funções como as utilíssimas str() e summary() que descrevem a estrutura e fornecem um “resumo” dos dados do objeto, e são sensíveis ao tipo, ou seja, vão apresentar, automaticamente, as informações no formato mais adequado e legível.
É ou não é uma linguagem incrível esse tal de R?

Ficou com alguma dúvida?
Tem interesse em treinamentos em R?
By |2018-08-29T10:16:41+00:00março 6th, 2018|Sem categoria|0 Comments

About the Author:

Leave A Comment