Buscar

APOSTILA - INTRODUÇÃO A PROGRAMAÇÃO EM BIG DATA - UNIDADE 2 (ANHEMBI MORUMBI UAM) CURTA SE LHE AJUDOU! ;D

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INTRODUÇÃO A PROGRAMAÇÃO EMINTRODUÇÃO A PROGRAMAÇÃO EM
BIG DATABIG DATA
A LINGUAGEM RA LINGUAGEM R
Autor: Me. Ricardo Alexandre G. C. Martins
Revisor : Fe l i ipe Ov iedo Fros i
IN IC IAR
introdução
Introdução
R é uma linguagem de programação comumente usada em computação
estatística, análise de dados e pesquisa cientí�ca. Seu nome é devido às
iniciais de seus criadores: Ross Ihaka e Robert Gentleman, ambos professores
do Departamento de Estatística da Universidade de Auckland (Nova Zelândia).
É uma das linguagens mais populares, usada por estatísticos, analistas de
dados, pesquisadores e pro�ssionais de marketing para recuperar, limpar,
analisar, visualizar e apresentar dados.
Por ser uma linguagem de código aberto, o R possui uma grande comunidade
que lança diversos pacotes, expandindo as funcionalidades da linguagem,
sendo que muitos desses pacotes são próprios para análise e modelagem de
dados, simpli�cando o trabalho de um cientista de dados ao oferecer
ferramentas para fácil manipulação, visualização e modelagem de dados.
Em sua essência, as operações R são vetorizadas, permitindo que vetores e
matrizes possam ser facilmente manipulados, e assim, amplamente utilizada
por pro�ssionais de estatística e Ciência de Dados.
Programar no R - como em qualquer linguagem de programação - requer o
conhecimento de sua sintaxe e regras para que o sistema entenda o comando
a ser executado. Desse modo, inicialmente é necessário conhecer algumas
premissas que regem a forma como a linguagem deve ser executada.
Tipos de Dados Básicos
Da mesma forma que soaria estranho uma pessoa ter como nome “12345”,
no R cada tipo de informação deve ser armazenada na memória do
computador em uma estrutura diferente, que comporte suas características.
Para essa estrutura, que pode variar seu conteúdo conforme a execução do
programa damos o nome de variável .
Dentro dos tipos de variáveis, chamados de tipos básicos àqueles que contém
a representação mais simples da informação à qual se deseja armazenar.
Segundo (WICKMAN, Hadley), o R possui 6 tipos básicos de dados, cada um
permitindo que um tipo de informação diferente seja armazenada, conforme
o  Quadro 2.1.
Iniciando com RIniciando com R
Quadro 2.1 - Tipos de dados básicos em R 
Fonte: Elaborado pelo autor (2019).
Operadores
Uma vez conhecidos os tipos de dados, o próximo passo é conhecer as
operações que podem ser realizadas neles. Sendo o R uma linguagem
desenvolvida para estatísticos, o suporte à operações matemáticas é bastante
presente, conforme pode ser visto no Quadro 2.2.
Tipo de
Dado
Valor Exemplo em R
Integer Números inteiros
10L (deve ter o L
no �nal)
Logical
Valores lógicos (verdadeiro /
falso)
TRUE
Numeric Números reais ou decimais 3.14
Complex Números complexos 3 + 4i
Character
Cadeia de caracteres com 1 ou
mais caracter
batata
Raw
Conjunto de caracteres, porém
convertidos para o código
hexadecimal da tabela Unicode
c3a7
correspondente a
“ç”
Quadro 2.2 - Operações em tipos de dados básicos em R 
Fonte: Elaborado pelo autor (2019)
A execução dos comandos no R é bastante simples, bastando digitá-los no
painel de console. Após a execução do comando, o R retorna o resultado do
cálculo realizado, conforme pode ser visto na Figura 2.1.
Operador Comando Exemplo em R
Atribuição de valores <- ou = a <- 10 ou a = 10
Soma + a + 5
Subtração - a - 5
Multiplicação * a * 5
Divisão / a / 5
Radiciação sqrt sqrt(a)
Potenciação ^ ou ** a^5 ou a**5
Sequência : 1:10
Funções
Na programação, você utiliza funções para incorporar conjuntos de instruções
que deseja usar repetidamente ou que, devido à sua complexidade, são mais
independentes em um subprograma e devem ser chamados quando
necessário. Uma função é um pedaço de código escrito para executar uma
tarefa especí�ca; podendo ou não pode aceitar argumentos ou parâmetros,
assim como pode ou não retornar um ou mais valores.
No R, conforme o tipo de dado da variável, existem funções especí�cas para
manipular aquele valor. As funções podem se dividir entre funções numéricas
(quando tratam um valor que seja um número) e funções de texto (quando
tratam um valor que seja um ou mais caracteres). O Quadro 2.3 traz como
exemplo algumas funções bastante comuns relacionadas com dados
numéricos, assim como o Quadro 4 traz apresenta como exemplo algumas
funções comuns de texto.
Figura 2.1 - Execução de operações no R 
Fonte: Elaborada pelo autor (2019).
Funções numéricas
Função O que ela faz
abs(x) Retorna o módulo do número
sqrt(x)
Retorna a raiz quadrada do
número
ceiling(x) Retorna o teto do número
�oor(x) Retorna o piso do número
trunc(x) Trunca o número
round(x, digits=n)
Arredonda o número até “n”
casas decimais
cos(x), sin(x), tan(x)
Retorna o cosseno, seno e
tangente do número
log(x)
Retorna o logaritmo natural do
número
log10(x)
Retorna o logaritmo na base 10
do número
exp(x)
Retorna o valor exponencial do
número
max(x)
Retorna o maior número de um
vetor
min(x) Retorna o menor número de um
Quadro 2.3 - Funções numéricas 
Fonte: Elaborado pelo autor (2019).
vetor
mean(x) Retorna a média de um vetor
sd(x)
Retorna o desvio padrão de um
vetor
Funções de texto
Função O que ela faz
substr(x, start=n1, stop=n2)
Retorna o texto contido em x, da
posição n1 até n2
grep( padrão , x , ignore.case
=FALSE, �xed =FALSE)
Procura o padrão em x e retorna os
índices correspondentes. Se �xed =
FALSE, o padrão é uma expressão
regular. Se �xed = TRUE, o padrão é
uma sequência de caracteres
sub( padrão , substituição , x,
ignore.case =FALSE, �xed
=FALSE)
Procura o padrão em x e o substitui
pelo texto de substituição . Se �xed =
FALSE, o padrão é uma expressão
regular. Se �xed = TRUE, o padrão é
uma sequência de texto
gsub( padrão , substituição ,
x, ignore.case =FALSE, �xed
=FALSE)
Substitui todas as correspondências de
uma sequência, se o parâmetro for um
vetor de sequência, retorna um vetor
de sequência com o mesmo
comprimento e com os mesmos
atributos (após possível substituição
com o caractere).
strsplit(x, split )
Divide os elementos de x em um vetor
pelo texto contido em a posição split
paste(..., sep="") Concatena texto e adiciona separador
toupper(x) Transforma para maiúsculo
Quadro 2.4 - Funções de texto 
Fonte: Elaborado pelo autor (2019).
A execução das funções é semelhante às operações matemáticas. Um
exemplo de como chamar as funções numéricas é apresentado na Figura 2.2,
enquanto um exemplo de chamada de funções de texto é apresentado na
Figura 2.3.
tolower(x) Transforma para minúsculo
nchar(x)
Retorna a quantidade de caracteres
em x
Figura 2.2 - Chamada de funções numéricas 
Fonte: Elaborada pelo autor (2019)
Figura 2.3 - Chamada de funções de texto 
Fonte: Elaborada pelo autor (2019)
praticar
Vamos Praticar
Uma das maneiras de trabalhar com dados é armazená-los em memória em uma
variável, e, a partir desse valor armazenado, realizar as operações necessárias. Para
que possamos realizar operações matemáticas que resultem em valores
percentuais, é necessário um tipo especí�co de dado para armazená-los. Qual é o
tipo de dado que deve ser utilizado para armazenar essa informação ?
a) Logical
b) Integer
c) Character
d) Numeric
e) Factor
Quando você programa em alguma linguagem de programação, você precisa
usar variáveis para armazenar dados diferentes. As variáveis são, no entanto,
áreas em um local de memória para armazenar valores. As estruturas de
dados são a maneira de organizar os dados para que possam ser usados com
e�ciência em um computador.
Ao contrário de diferentes linguagens de programação como C e Java, R não
possui variáveis declaradas como algum tipo de dado. As variáveis são
nomeadas com objetos R e a forma de conhecimento do objeto R se torna o
tipo de dados da variável. Existem muitos tipos de objetos R. Os mais usados
popularmente são:
Vetores 
○    Vetores atômicos 
○    Listas
Matrizes
Arrays
DataFrames
Estruturas de DadosEstruturas deDados
BásicosBásicos
Eles podem ser divididos quanto à forma dos dados que armazenam:
Quadro 2.5 - Estrutura de dados 
Fonte: Elaborado pelo autor (2019)
Vetores
A estrutura de dados básica em R é o vetor. Os vetores têm dois tipos: vetores
atômicos e listas. Eles têm três propriedades comuns:
typeof() - tipo de dados
length() - quantos elementos ele contém
attributes() - metadados arbitrários adicionais.
Eles diferem nos tipos de seus elementos: todos os elementos de um vetor
atômico devem ser do mesmo tipo, enquanto os elementos de uma lista
podem ter tipos diferentes.
Vetores Atômicos
Um vetor atômico é uma estrutura de dado que representa um conjunto
sequencial de um mesmo tipo de dado, ou seja, para cada tipo de dado, existe
um tipo de vetor atômico. No caso de se tentar combinar tipos diferentes de
dados no mesmo vetor atômico (como valores lógicos e numéricos, por
exemplo), o R automaticamente irá encontrar o tipo de dado mais apropriado
Dimensões Homogêneos Heterogêneos
1 d Vetores atômicos Listas
2 d Matrizes DataFrames
n d Arrays
para armazenar todos os valores e criará o vetor atômico com esse tipo de
dado.
Os vetores atômicos geralmente são criados com o comando c(), que é
abreviação de combine .
Listas
As listas são diferentes dos vetores atômicos porque seus elementos podem
ser de qualquer tipo, incluindo listas (nesse caso, chamado de vetores
recursivos ). Você pode construir listas usando o comando list() em vez de c():
Figura 2.5: Listas 
Fonte: Elaborado pelo autor (2019)
Você pode transformar uma lista em um vetor atômico com o comando
unlist() . Porém, se os elementos da lista tiverem tipos diferentes, o unlist()
usará as mesmas regras de conversão do comando c().
Matrizes
Figura 2.4: Vetores atômicos 
Fonte: Elaborado pelo autor (2019).
Matrizes são as estruturas nas quais os elementos são organizados em um
layout retangular bidimensional, contendo elementos dos mesmos tipos
atômicos. Embora possamos criar uma matriz contendo apenas caracteres ou
apenas valores lógicos, elas não são de muita utilidade, sendo mais comum o
uso de matrizes contendo elementos numéricos para serem utilizadas em
cálculos matemáticos.
A sintaxe básica para criar uma matriz em R é:
matrix(dados, nrow, ncol, byrow, dimnames)
Sendo que:
dados é o vetor de entrada que se torna o elemento de dados da
matriz
nrow é o número de linhas a serem criadas
ncol é o número de colunas a serem criadas
byrow é uma indicação lógica. Se TRUE, os elementos do vetor de
entrada são organizados por linha
dimnames são os nomes atribuídos às linhas e colunas
Figura 2.6: Matrizes 
Fonte: Elaborado pelo autor (2019)
Arrays
Arrays são as estruturas de dados R que podem armazenar dados em mais de
duas dimensões. Por exemplo - Se criarmos um array de dimensão (2, 3, 4),
ele criará 4 matrizes retangulares, cada uma com 2 linhas e 3 colunas. Arrays
podem armazenar apenas o mesmo tipo de dados.
Um array é criado usando a função array() , utilizando como entrada os
vetores e seus valores no parâmetro dim .
O exemplo a seguir cria um array de duas matrizes 3x3, cada uma com 3
linhas e 3 colunas.
Data Frames
Um data frame é o tipo de dado mais comumente utilizado no R,
principalmente devido à sua facilidade para a análise de dados.
De forma resumida, o data frame é uma tabela ou uma estrutura
bidimensional do tipo matriz em que cada coluna contém valores de uma
variável e cada linha contém um conjunto de valores de cada coluna.
Diferente da matriz, onde é permitido somente um tipo de dado, o data frame
aceita diferentes tipos de dados (numérico, caractere, etc).
São consideradas características de um data frame:
Os nomes das colunas não devem estar vazios
Os nomes das linhas devem ser exclusivos
Os dados armazenados em um data frame podem ser do tipo
numérico, fator ou caractere
Cada coluna deve conter o mesmo número de itens de dados
Figura 2.7 - Arrays 
Fonte: Elaborado pelo autor (2019)
Um data frame é criado através do comando data.frame() , que recebe
vetores nomeados como entrada:
Figura 2.8: Data Frames 
Fonte: Elaborado pelo autor (2019)
Por padrão, ao criar um data frame com valores strings. o R automaticamente
converte esses valores para o tipo factor (categoria). Para evitar esse
comportamento, ao carregar o data frame deve ser indicado que as strings
não devem ser tratadas como factor (categoria), através do comando
stringAsFactors = FALSE .
O acesso a informações do data frame é feito através da utilização do
caractere $ para identi�car o dado pretendido.
Figura 2.9: Data Frames 
Fonte: Elaborado pelo autor (2019).
Figura 2.10: Acesso a dados das colunas de um Data Frame 
Fonte: Elaborado pelo autor (2019).
praticar
Vamos Praticar
Um estudante de estatística precisa realizar a análise de dados referente ao
aproveitamento dos alunos do ensino médio na disciplina de matemática durante o
ano letivo. Para isso, ele obteve dados de várias escolas, onde identi�cam as
seguintes informações: id do aluno, idade, série, faltas no 1º bimestre, média no 1º
bimestre, faltas no 2º bimestre, média no 2º bimestre, faltas no 3º bimestre, média
no 3º bimestre, faltas no 4º bimestre e média no 4º bimestre. Em qual tipo de
estrutura o estudante deve carregar esses dados, de modo a poder trabalhar na
análise dos dados ?
a) Lista
b) Matriz
c) Data frame
d) Array
e) Vetor atômico
Vetores são estruturas de dados de 1 dimensão, com características de
armazenamento de um único tipo de dado em cada posição dentro da
estrutura.
Acesso a Elementos
Os elementos de um vetor são acessados usando a indexação através da
indicação da posição dentro de colchetes “[]”. Cada elemento é armazenado
em uma posição (iniciada em 1) dentro da estrutura, e para acessá-lo, basta
informar essa posição. 
VetoresVetores
Figura 2.11: Acesso a dados do vetor 
Fonte: Elaborado pelo autor (2019).
É possível realizar o acesso através de condições lógicas. Nesse caso, é
necessário informar no local do índice a condição a ser satisfeita. 
Figura 2.12: Acesso a dados de forma condicional 
Fonte: Elaborado pelo autor (2019).
Além disso, é possível acessar vários dados do vetor passando um vetor de
posições. Caso a posição seja marcada como negativa, ela é removida da
visualização. 
Figura 2.13: Acesso a dados de forma posicional 
Fonte: Elaborado pelo autor (2019).
Operações Aritméticas
O R suporta a realização de operações aritméticas entre vetores. As
operações aritméticas como adição, subtração, multiplicação e divisão são
simples de serem realizadas, bastando a indicação dos valores e a operação
desejada. 
Um ponto a ser ressaltado é que, quando os vetores não possuem tamanhos
iguais, o vetor de menor tamanho tem seus elementos replicados até atingir o
tamanho do vetor maior. Somente depois disso é que a operação aritmética é
realizada. 
Figura 2.15: Operações aritméticas entre vetores de tamanhos diferentes 
Fonte: Elaborado pelo autor (2019).
Ordenação
O R suporta a realização de ordenação nos vetores. Quando realizada em
vetores do tipo character, a ordenação se dará de maneira alfabética. 
Figura 2.14: Operações aritméticas entre vetores do mesmo tamanho 
Fonte: Elaborado pelo autor (2019).
Concatenação
A concatenação de valores em vetores é um processo similar à criação de um
vetor. Na concatenação de vetores, o R considera cada elemento dos vetores
a serem concatenados como um próprio, e no �nal oO R importa todos os
elementos para uma estrutura única. 
praticar
Vamos Praticar
Figura 2.16: Ordenação de vetores 
Fonte: Elaborado pelo autor (2019)
Figura 2.17: Concatenação de vetores 
Fonte: Elaborado pelo autor (2019)
Um estudante de estatística precisa realizar a análise de dados referente ao
aproveitamento dos alunos do ensino médio na disciplina de matemática durante o
ano letivo. Para isso, ele necessita calcular a média, o desvio padrão, o valor máximo
e o valor mínimo do conjunto de notas. Dadoque a variável que contém essas
informações chama-se “notas”, quais seriam os comandos necessários para se obter
os valores ?
a) notas.mean() 
notas.sd() 
notas.max() 
notas.min()
b) notas.media() 
notas.desvpad() 
notas.maximo() 
notas.minimo()
c) mean(notas) 
sd(notas) 
max(notas) 
min(notas)
d) media(notas) 
desvpad(notas) 
maximo(notas) 
minimo(notas)
e) mean(x) 
sd(x) 
max(x) 
min(x)
M atrizes são estruturas de dados de 2 dimensões. Sua manipulação difere
dos vetores no sentido de que é necessário informar a linha e a coluna
referente a posição do elemento na estrutura.
Acesso a Elementos
De maneira semelhante aos vetores, os elementos de uma matriz também
são acessados usando a indexação através da indicação da posição dentro de
colchetes “[]”.
Ainda de maneira semelhante aos vetores, é possível realizar buscas na
matriz através de expressões condicionais lógicas.
MatrizesMatrizes
Figura 2.18: Acesso a elementos em matrizes 
Fonte: Elaborado pelo autor (2019)
Operações Aritméticas
De maneira semelhantes aos vetores, o também R suporta a realização de
operações aritméticas entre matrizes. As operações aritméticas como adição,
subtração, multiplicação e divisão são simples de serem realizadas, bastando
a indicação dos valores e a operação desejada.
Figura 2.19: Criação de matrizes 
Fonte: Elaborado pelo autor (2019)
Concatenação
A concatenação de valores em matrizes possui 2 maneiras distintas de ser
realizada: através de linhas e através de colunas. Na concatenação de
matrizes, o R espera que o elemento a ser concatenado seja um vetor ou uma
matriz, e o resultado �nal será uma matriz com todos os elementos.
Figura 2.20: Operações aritméticas em matrizes 
Fonte: Elaborado pelo autor (2019)
Figura 2.21: Concatenação de matrizes com vetores 
Fonte: Elaborado pelo autor (2019)
praticar
Vamos Praticar
Arrays e matrizes são estruturas de dados existentes no R que permitem o
armazenamento de diferentes informações. Entretanto, em casos especí�cos, a
mesma informação pode ser armazenada tanto em um array quanto em uma
matriz. Em qual situação isso seria possível ?
a) É necessário quando o número de linhas do array é igual ao número de
linhas de colunas da matriz
b) É necessário que o número de dimensões do array seja do mesmo número
de linhas da matriz
c) É necessário que o número de dimensões do array seja maior que o
número de colunas da matriz
d) É necessário que o número de dimensões do array seja maior que o
número de linhas da matriz
e) É necessário que o número de dimensões do array seja igual a 1
Figura 2.22: Concatenação de matrizes com matrizes 
Fonte: Elaborado pelo autor (2019)
indicações
Material
Complementar
FILME
Uma Odisséia no Espaço
Ano: 1968
Comentário: 2001: Uma odisséia no espaço é um �lme
de �cção cientí�ca  que segue uma viagem a Júpiter
com o computador HAL após a descoberta de um
monólito alienígena sem característica que afeta a
evolução humana, tratando de temas de
existencialismo, evolução humana, tecnologia,
inteligência arti�cial e a possibilidade de vida
extraterrestre.
TRA ILER
LIVRO
Conhecendo o R: Uma visão mais que
estatística
Editora : UFV
Autor : Mello, M. P., & Peternelli, L. A.
ISBN : 978-8572694957
Comentário : “Conhecendo o R – Uma visão mais que
Estatística”, apresenta uma rica fonte de informação a
respeito das funcionalidades e potencialidades da
linguagem R, sendo indicado tanto para os que já
dominam o uso do R e querem aperfeiçoar seus
conhecimentos, como para quem está começando nos
estudos da linguagem.
conclusão
Conclusão
A linguagem R é uma poderosa ferramenta do cientista de dados para
explorar informações, relacionamentos e descobrir os “segredos escondidos”
nos dados.
Se por um lado, é conhecido que 80% do tempo de trabalho de um cientista
de dados é tratando da “limpeza” dos dados, através da manipulação de
valores, vetores e matrizes, vimos como é possível realizar essa tarefa, ao
remover valores indesejados, realizando alguns cálculos e gerando
informação visual para apoiar uma tomada de decisão.
Essa manipulação, muitas vezes essencial no dia-a-dia do cientista de dados,
fornece suporte a recursos mais avançados (que serão utilizados
posteriormente), uma vez que permite a criação de novas informações dentro
da estrutura de dados, fazendo assim com que novas informações sejam
obtidas a partir das já existentes.
referências
Referências
Bibliográ�cas
WICKMAN, Hadley. Título : R para Data Science. Rio de Janeiro: Alta Books,
2019

Mais conteúdos dessa disciplina