Você está na página 1de 39

Universidade Federal do Rio Grande do Norte

Instituto Metrópole Digital


IMD0601 - Bioestatística

R e Rstudio
Prof. Dr. Tetsu Sakamoto
Instituto Metrópole Digital - UFRN
Sala A224, ramal 182
Email: tetsu@imd.ufrn.br
● Linguagem de programação +
Ambiente de desenvolvimento
para análises estatísticos;
● Criado por Ross Ihaka e Robert
R Gentleman da Universidade de
Auckland, Nova Zelândia em
IMD0601 - Bioestatística 1995;
● Baseado na linguagem S;

Ross Ihaka Robert Gentleman


Características do R:

● Linguagem interpretada;
● Objeto orientado;
● Amplamente utilizado entre
estatísticos e data miner;

R ● Ecossistema rica para realizar


análise de dados;
● Open-source;
IMD0601 - Bioestatística
● Permite operações de matrizes;
● Principal diferencial: análises
estatísticas e visualização dos
dados.

Ross Ihaka Robert Gentleman


● IDE para R;
● Criado por Joseph J. Allaire;
Rstudio ● Primeira versão em 2011;
● Versões gratuitos e pagos.
IMD0601 - Bioestatística

J J Allaire
Rstudio

Environment+
History

Console

Files+Plots+
Help+...
Rstudio
Working directory

● getwd() e setwd();
● Diretório onde o R
utilizará como
referência para
encontrar e salvar
arquivos.
● Navegue na aba “Files”
até a pasta desejada;
● Clique em “More” >
“Set as Working
Directory”;
Rstudio
Gráficos

● Gráficos gerados
aparecem na aba plot;
● Utilize os seguintes
comando para gerar
um gráfico:

> Data <- rnorm(1000, mean = 0, sd = 1)

> hist(Data)
Rstudio
Instalação de pacotes

● install.packages();
● Para obter funções 1
mais específicas;
● Vá na aba “Packages” >
2
“Install” e procure pelo
pacote “plm” e o
instale.
3
Rstudio
Carregar pacotes

● Após a instalação do
pacote, você pode
carregá-lo usando o
comando:

> library(plm)
1
Rstudio 2

Scripts

● Forma mais eficiente e


prático de usar o R no
Rstudio;
● Vá em “File” > “New
File” > “R Scripts”.
● A interface fica dividida
agora em 4 partes.
Rstudio
Scripts

● Coloque estes
comandos no R Script e
os execute:

# Criando os objetos x, y e z

x <- 5
y <- 6
z <- x + y
z
Rstudio
Scripts

● Selecione as linhas que


queira executar no
Console e dê
Ctrl+Enter;
● Ctrl+1, Ctrl+2 → move
entre os scripts.
Rstudio
Scripts

● Para salvar o script,


clique no ícone do
disquete.
● A extensão padrão dos
R Scripts é .R
Aprendendo R
Básico do R
Sinal de atribuição <- (= aceito apenas no Rstudio) (Alt + -)
Tipos de variáveis
character "Char" # character()
numeric (real ou decimal) 15.5, 2 # numeric()
integer 2L, 10L # integer()
logical TRUE, FALSE # logical()
complex 1+4i # complex()
Básico do R
Funções:
typeof() Verifica o tipo de um dado (baixo nível)
class() Verifica a classe de um dado (alto nível)
length() Retorna o tamanho ou dimensão do dado
attributes() Verifica se ele possui algum metadado
Ajuda ?attributes
Básico do R
Estrutura dos dados:
Atomic vector Vetor que acomoda um único tipo de dado;
List Vetor que acomoda múltiplos tipos de dado;
Matrix Matriz que acomoda um único tipo de dado;
Data frame Matriz que acomoda múltiplos tipos de dado;
Factor Vetor que representa dados categóricos;
Básico do R
Vetor numérico c(1,2,3,4)
Vetor lógico c(TRUE, FALSE, NA)
Vetor de caracteres c("My", "name", "is")

Operações aritméticas c(1.1, 9, 3.14)*2+100 # 102.20 118.00 106.28


Reciclagem c(1,2,3,4) + c(0,10) # 1 12 3 14
Básico do R
Sequência de números 1:20; 15:1; seq(1,20, by=0.5);
seq(5,10,length=30)

Replicar números rep(0, times=40); rep(c(0,1,2), times=10)

Tamanho do vetor length(rep(0, times=40))

Juntar palavras paste(c("My", "code"), collapse = " ")


Básico do R
NA - not available x <- c(44, NA, 5, NA)

3 * x

is.na(x) # mesmo que x == NA?

Inf e -Inf - Infinitos 1/0

NaN - not a number 0 / 0

Inf - Inf
Subconjunto de vetores
No R, o índice se inicia do 1.
x[1:10] Extrai os 10 primeiros elementos de x;
x[c(3,5,7)] Extrai o 3º, 5º e o 7º elemento de x;
x[c(-3,-5,-7)] Extrai os elementos de x menos o 3º, 5º e o 7º;
x[-c(3,5,7)] Extrai os elementos de x menos o 3º, 5º e o 7º;
x[c(-3,5,7)] Erro, não misture índices positivos e negativos
x[x > 0] Extrai elementos positivos de x;
x[is.na(x)] Extrai elementos NA de x;
x[!is.na(x)] Extrai os elementos não NA de x;

x[0] Índice fora do intervalo (numeric(0))


x[3000] Índice fora do intervalo (NA)
Nomeando os elementos dos vetores
vector <- c(140, -50, 20, -120, 240)
days <- c("Monday","Tuesday","Wednesday","Thursday","Friday")
names(vector) <- days
attributes(vector)

vector[2] # -50
vector["Tuesday"] # -50
vector[c(3,5)] # (20,240)
vector[c("Wednesday","Friday")] # (20,240)

vect <- c(foo = 11, bar = 2, norf = NA)


vect["foo"] # 11
Loops
For loops: a <- 1:10

b <- 1:10

res <- numeric(length = length(a))

for (i in seq_along(a)) {

res[i] <- a[i] + b[i]

res
a <- 300

if( a >= 500 ) {

print("escopo 1")

If e Else } else if(a < 100) {

print("escopo 2")

} else {

print("escopo 3")

}
ifelse(variavel >= 500,
'executa essa tarefa se
If e Else TRUE', 'executa outra se
FALSE')
Para lidar com vetores...
ifelse(1:20 >= 10, 0, 10)
a <- 839

c <- ifelse(a >= 10000,


'VALOR ALTO', ifelse(a <
If e Else 10000 & a >= 1000, 'VALOR
MEDIO', 'VALOR BAIXO'))
Para lidar com vetores...
c
func1 <- function(par1, par2){

# sequência de tarefas

return(result)

Functions }

# chamada da função

func1(a,b)
Matrizes e Data Frame
● Tabela bidimensional;
● Coleção de elementos (numérico, caracteres,
lógicos);
● Número determinado de linhas e colunas;
Matriz Data Frame

● Os elementos são do ● Os elementos podem ser


mesmo tipo. de tipos diferentes.
Matrizes e Data Frame
Criando matrizes m <- matrix(1:20, 4, 5)
m <- c(1:20); dim(m) <- c(4,5)
Criando Data Frame patients <- c("Bill","Gina","Kelly","Sean")
data.frame(patients, m)
Combinar colunas cbind(m, m)
Combinar linhas rbind(m, m)
Nomear colunas colnames(v)
Nomear linhas rownames(v)
Matrizes e Data Frame
m <- matrix(1:20, 4, 5) m[2,3] # elemento da 2ª linha
m # e 3ª coluna
[,1] [,2] [,3] [,4] [,5] m[1,] # primeira linha
[1,] 1 5 9 13 17 m[,1] # primeira coluna
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
Matrizes e Data Frame
> m <- matrix(1:20, 4, 5, byrow = TRUE)
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20
Matrizes e Data Frame
> m <- matrix(1:20, 4, 5) # elemento da 2ª L e 3ª C
m[2,3]
> colnames(m)<-c("a","b","c","d","e")
m[2,"c"]
> m
a b c d e # primeira linha
m[1,]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10 # primeira coluna
m[,1]
[3,] 11 12 13 14 15
m[,"a"]
[4,] 16 17 18 19 20
Abrindo dados read.csv(file, header = TRUE,
em R sep = ",", quote = "\"", dec
= ".", fill = TRUE,
Organização dos dados em R comment.char = "", ...)
Funções úteis
ls() Listar as variáveis no ambiente;
class(v) Verifica a classe de um objeto v;
dim(v) Mostra as dimensões de uma tabela v (linha x coluna);
nrow(v) Mostra o número de linhas em v;
ncol(v) Mostra o número de colunas em v;
object.size(v) Mostra o espaço ocupado na memória por v;
head(v) Mostra as 6 primeiras linhas de v;
tail(v) Mostra as 6 últimas linhas de v;
summary(v) Mostra um breve sumário de v;
str(v) Mostra a estrutura de v;
iris.data e iris.name
Source: https://archive.ics.uci.edu/ml/datasets/iris

Dados de comprimento e largura de pétalas e sépalas de três variedades de íris;

● iris.data → contém os dados;


● Iris.names → contém algumas descrições sobre os dados;

Data Set Number of


Multivariate 150 Area: Life
Characteristics: Instances:

Attribute Number of
Real 4 Date Donated 1988-07-01
Characteristics: Attributes:

Number of Web
Associated Tasks: Classification Missing Values? No 2411032
Hits:
Consultado em 18/02/2019
iris.data e iris.name
Exercício:

1. Veja a documentação da função read.csv() e carregue os dados do iris.data;


2. Veja a descrição de cada coluna dos dados em iris.names e nomeie as
colunas;
3. Explore os dados utilizando as funções vistas nesta aula e responda:
a. Qual a dimensão da tabela?
b. Quais são os tipos de dados de cada coluna?
c. Quanto de memória estes dados estão ocupando?
d. Quantas amostras estão presentes em cada classe de Íris?
e. Tem algum dado faltante na tabela?
Onde aprender R?
● https://swirlstats.com/
● Aprender R no próprio R!
● Instale o pacote “swirl” pelo RStudio (> install.packages(“swirl”));
● Carregue o pacote “swirl” (> library(swirl));
● Execute a função swirl();
● Escolha o curso: R programming;
● Faça as tarefas:
○ 1. Basic Building Blocks ● 7: Matrices and Data Frames
○ 2: Workspace and Files ● 8: Logic
○ 3. Sequences of Numbers ● 9: Functions
○ 4. Vectors ● 10: lapply and sapply
○ 5: Missing Values ● 11: vapply and tapply
○ 6: Subsetting Vectors ● 12: Looking at Data

Você também pode gostar