top of page

Tipos de dados

Objetos

Visualizando o conteúdo de objetos

​

Introdução

​

contributors()

 

A função contributors() exibe os nomes das principais pessoas que contribuíram para o desenvolvimento do programa R.

​

citation()

 

A função citation() exibe uma sugestão de como  citar o programa R em publicações técnicas e acadêmicas.

​

​RShowDoc("COPYING")

 

RShowDoc("COPYING") exibe a licença pública do programa R.

​

history()

​

A função history() exibe uma lista das funções executadas pelo usuário.

​

builtins()

​

Além das funções existentes no R, você pode criar suas próprias funções, como veremos posteriormente. As funções que já existem no R são chamadas de "built-in functions" (ou "funções embutidas"). A função builtins() exibe uma lista das funções "built-in" do R.

​

sessionInfo()

​

sessionInfo() exibe informações sobre o programa R e o sistema operacional.

​

Tipos de dados

​

Escalares

​

x <- 34

y = 7

9 -> z

X <- 45

h <- pi

z <- 8+4

​

A expressão x <- 34 denota "atribua a x o valor 34". Notar, nos exemplos acima, que há diferentes formas  de atribuir um valor a um escalar, usando <--> ou =.

​

Notar que o R diferencia letras minúsculas de letras maiúsculas. Assim, os objetos x e X são diferentes.

​

A expressão a seguir atribui 8 a a, b e c.

​

a <- b <- c <- 8

​

Vetores

​

Os vetores podem ser numéricos, caracteres ou lógicos (tipo "verdadeiro" ou "falso").

​

# numéricos

x1 <- c(6,3,6,0,7,3)

x2 <- 1:20

x3 <- 20:1

x4 <- c(x2,x4)

 

# caracteres

y1 <- c("norte", "sul","leste","oeste")

y2 <- month.abb

y3 <- month.name

 

y2
 [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"

 

y3
 [1] "January"   "February"  "March"     "April"     "May"       "June"      "July"      "August"   
[9] "September" "October"   "November"  "December"

​​​

# lógicos

z <- c(TRUE,TRUE,FALSE)

​

# O símbolo "#" serve para inserir comentários quando você escreve linhas de programação

 

# is.vector(x) retorna TRUE se x é um vetor e FALSE caso contrário

​

is.vector(x1)

​

Matrizes

​

# exemplos

​

# nrow indica quantas linhas terá a matriz

​

M1 <- matrix(c(1, 1, 1, 2), nrow = 2)

 

# ncol indica quantas colunas terá a matriz

 

M2 <- matrix(c(1, 3, 2, 4), ncol = 2)

​

# perceba que a matriz é "preenchida" sequencialmente pelas colunas

# byrow é usado para preencher a matriz pelas linhas

​

M3 <- matrix(c(1, 3, 2, 4), ncol = 2, byrow=T)

​

A sintaxe é:

​

mymatrix <- matrix(vector, nrow=r, ncol=c, byrow=FALSE, dimnames = list(char_vector_rownames, char_vector_colnames))

 

M <- matrix(c(1, 3, 2, 4), ncol = 2, byrow=T, dimnames=list(c("L1","L2"),c("C1","C2")))

​

​dim(M)           # retorna a dimensão da matriz M (linhas e colunas)

M[1,1]           # retorna o elemento da linha 1 e coluna 1 da matriz M

M[1,]            # retorna a linha 1 da matriz M

M[,1]            # retorna a coluna 1 da matriz M

nrow(M)          # retorna o número de linhas da matriz M

ncol(M)          # retorna o número de colunas da matriz M

t(M)             # retorna a transposta da matriz M

solve(M)         # retorna a inversa da matriz M

det(M)           # retorna o determinante da matriz M

diag(M)          # retorna os elementos da diagonal da matriz M

eigen(M)         # retorna os autovalores e autovetores da matriz M

is.matrix(M)     # retorna TRUE se M é uma matriz e FALSE caso contrário

​

Fatores

​

Fatores representam variáveis categóricas.

 

x <- c(7,5,2,8,5,7,1,7)

 

# as funções factor(x) ou as.factor(x) convertem x em fatores.

 

factor(x)

 

[1] 7 5 2 8 5 7 1 7

Levels: 1 2 5 7 8

 

as.factor(x)

 

# is.factor() retorna TRUE se x é um fator e FALSE caso contrário

 

is.factor(x)

​

# a função levels() retorna os níveis de um fator

​

xf <- factor(x)


levels(xf)
 

[1] "1" "2" "5" "7" "8"
 

​

Arrays

​

Generalizam o conceito de matrizes, permitindo um número maior de dimensões

 

a <- array(1:24,  dim=c(3,4,2))

​

Data frame

​

Um data frame é um “banco de dados”: é uma tabela composta por um ou vários vetores e/ou fatores do mesmo tamanho.

 

nome <- c("Alexander","André","Breno","Carla")

nota <- c(8.6,9.4,6.2,7.5)

resultado <- c(TRUE,TRUE,TRUE,FALSE)

meusdados <- data.frame(nome,nota,resultado)

names(meusdados) <- c("nome","nota","resultado")

​

​

Datas

​

t0 <- as.Date("11/02/2003",format="%d/%m/%Y")
[1] "2003-02-11"

​

t1 <- as.Date("11/02/2023",format="%d/%m/%Y")
[1] "2023-02-11"

 

t1-t0
Time difference of 7305 days

​

tempodias <- as.numeric(t1-t0)

tempodias

[1] 7305

​

as.Date("5jan2018", "%d%b%Y")
[1] "2018-01-05"
 

as.Date("5jan2018",format="%d%b%Y")
[1] "2018-01-05"
 

as.Date("5-jun-2013",format="%d-%b-%Y")
[1] "2013-06-05"
 

​

​

Valores faltantes (missings)

​

Os valores faltantes são indicados por NA (not available)

​

y <- c(4,9,5,NA,3)

is.na(y)            # indica quais elementos em y são faltantes

!is.na(y)           # indica quais elementos em y não são faltantes

anyNA(y)            # retorna TRUE se há algum valor faltante em y

y[is.na(y)] <- 99   # substitui todos os valores faltantes em y por 99

 

Observar que is.na()também retorna TRUE para NaN (“Not a Number”)

​

is.na(c(4,1,6,NA,NaN))
[1] FALSE FALSE FALSE  TRUE  TRUE

​

Removendo valores faltantes de um vetor

​

y <- c(4,9,5,NA,3)
y <- y[!is.na(y)]
y
[1] 4 9 5 3

​

Removendo valores faltantes de um data frame

​

x1 <- c(3,7,4,NA,9,2,6)
x2 <- c(NA,3,5,6,9,8,NA)
x3 <- c(9,7,2,5,8,3,4)
dat <- data.frame(x1,x2,x3)
dat
  x1 x2 x3
1  3 NA  9
2  7  3  7
3  4  5  2
4 NA  6  5
5  9  9  8
6  2  8  3
7  6 NA  4

​

is.na(dat)
        x1    x2    x3
[1,] FALSE  TRUE FALSE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE
[4,]  TRUE FALSE FALSE
[5,] FALSE FALSE FALSE
[6,] FALSE FALSE FALSE
[7,] FALSE  TRUE FALSE

 

complete.cases(dat)
[1] FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE


newdat <- na.omit(dat)
newdat
  x1 x2 x3
2  7  3  7
3  4  5  2
5  9  9  8
6  2  8  3

​

​

Listagem e remoção de objetos

​

ls()                # lista os objetos ativos

remove() ou rm()    # remove objetos

rm(list=ls())       # remove todos os objetos ativos

ls.str()            # detalhes dos objetos ativos

exists()            # verifica a existência de um objeto na seção atual

​

a <- c(56,78,98)

 

exists("a")

[1] TRUE

​

Notação científica

​

Útil quando se deseja expressar números muito grandes ou muito pequenos. Por exemplo,

​

  • 2e3 denota 2 x 103 = 2000

  • 1.85e8 denota 1,85 x 108 = 185000000

  • 2e15 denota 2 x 1015 = 2000000000000000

  • 2e-10 denota 2 x 10-10 = 0,0000000002

 

 

Operadores

​

  Aritméticos

 

  +   Adição

  -   Subtração

  *   Multiplicação

  /   Divisão

  ^   Potência

  **  Potência

  %%  "Resto" da divisão

  %/% Divisão inteira

​

  Comparações

 

  <    Menor que

  >    Maior que

  <=   Menor ou igual

  >=   Maior ou igual

  ==   Igual

  !=   Diferente

​

  Lógicos

 

  !     NOT

  x&y   AND (vetorizado)

  x&&y  AND (não vetorizado)

  x|y   OR  (vetorizado)

  x||y  OR  (não vetorizado)

​

Para entendermos a diferença entre & &&, vamos considerar o exemplo:

​

  x <- c(0,1,2)
  y <- c(2,1,0)
  x<1 & y>1   # Retorna um vetor de TRUEs e FALSEs
  [1] TRUE FALSE FALSE
  x<1 && y>1  # Considera somente o primeiro elemento de x e y
  [1] TRUE


Análogo para | e ||.

​

​

Funções Matemáticas Comuns

​

  abs()         # Valor absoluto

  choose()      # Combinação

  exp()         # Exponencial

  factorial()   # Fatorial

  lfactorial()  # Log fatorial

  log()         # Logaritmo

  log2()        # Logaritmo de base 2

  log10()       # Logaritmo de base 10

  sqrt()        # Raiz quadrada

  pi            # 3,14159265

  Inf           # Infinito

​

  # Infinito:

  1/0

  [1] Inf

​

  a<-8

  b<-0

  is.infinite(a/b)

  [1] TRUE

​

  # "Not a number" (NaN):

  0/0

  [1] NaN

​

  is.nan(Inf/Inf)

  [1] TRUE

​

Notar que o R não considera NA ou NaN como valores finitos ou infinitos.

​

  a <- c(4,1,6,NA,NaN)

​

  is.finite(a)
  [1]  TRUE  TRUE  TRUE FALSE FALSE

 

  is.infinite(a)
  [1] FALSE FALSE FALSE FALSE FALSE

 

  is.na(a)
  [1] FALSE FALSE FALSE  TRUE  TRUE


  is.nan(a)
  [1] FALSE FALSE FALSE FALSE  TRUE

​

Funções trigonométricas: clicar aqui

​

Operações com caracteres

​

  casefold(x)            # converte para letras minúsculas

  casefold(x,upper=TRUE) # converte para letras maiúsculas

  substr(x,2,4)          # extrai do 2o ao 4o caractere de cada elemento de x

  paste(x,"ly",sep="")   # insere "ly" no final de cada elemento de x

  nchar(x)               # número de caracteres em cada elemento de x

  grep("a",x)            # quais elementos de x contém "a" ?

  grep("a|b",x)          # quais elementos de x contém "a" ou "b"?

  grepl("a",x)           # retorna TRUE para os elementos de x que contém "a"

  grepl("^a",x)          # retorna TRUE para os elementos de x que começam por "a"

  agrep("abc",x)         # quais elementos de x contém ocorrências semelhantes a "abc" ?

  agrepl("abc",x)        # retorna TRUE para os elementos de x que contém ocorrências semelhantes a "abc"

  strsplit(x,"a")        # particiona x quando ocorre a letra "a"

  startsWith(x,"a")      # retorna TRUE para os elementos de x que começam por "a"

  endsWith(x,"a")        # retorna TRUE para os elementos de x que terminam por "a"

  sub("a","b",x)         # nos elementos de x, substitui a primeira ocorrência de "a" por "b"

  gsub("a","b",x)        # nos elementos de x, substitui toda ocorrência de "a" por "b"

​

# Exemplos:

​

animais <- c("gato","pássaro","minhoca","avestruz","cisne","elefante")

​

casefold(animais,upper=TRUE)

[1] "GATO"     "PÁSSARO"  "MINHOCA"  "AVESTRUZ" "CISNE"    "ELEFANTE"

​

substr(animais,2,4)

[1] "ato" "áss" "inh" "ves" "isn" "lef"

​

paste(animais,"verde",sep=" ")

[1] "gato verde"     "pássaro verde"  "minhoca verde"  "avestruz verde"

[5] "cisne verde"    "elefante verde"   

​

nchar(animais)

[1] 4 7 7 8 5 8

​

grep("ve",animais)   # o quarto elemento de animais contém a expressão "ve":

[1] 4

​

grep("a",animais)    # apenas o quinto elemento de animais não contém "a":

[1] 1 2 3 4 6

​

grepl("o",animais)   # retorna TRUE para os elementos de animais que contém "o":

[1] TRUE  TRUE  TRUE FALSE FALSE FALSE

​

grepl("^m",animais)  # retorna TRUE se o elemento de animais começa com "m":

[1] FALSE FALSE  TRUE FALSE FALSE FALSE

​

agrep("galo",animais)   # NOTA: ver distância Levenshtein

[1] 1

​

agrepl("galo",animais)  

[1] TRUE FALSE FALSE FALSE FALSE FALSE

​

strsplit("Axraposaxpulouxaxcercaxexfugiuxparaxaxfloresta","x")

[[1]]

 [1] "A"        "raposa"   "pulou"    "a"        "cerca"    "e"      

 [7] "fugiu"    "para"     "a"        "floresta"

​

startsWith(animais, "p")  # retorna TRUE para os elementos de animais que começam com "p":
[1] FALSE  TRUE FALSE FALSE FALSE FALSE

​

endsWith(animais, "o")
[1]  TRUE  TRUE FALSE FALSE FALSE FALSE

​

endsWith(animais, "ro")
[1] FALSE  TRUE FALSE FALSE FALSE FALSE

​

​sub("o","K",animais)
[1] "gatK"     "pássarK"  "minhKca"  "avestruz" "cisne"    "elefante"

​

sub("e","X",animais)
[1] "gato"     "pássaro"  "minhoca"  "avXstruz" "cisnX"    "Xlefante"

​

gsub("e","X",animais)
[1] "gato"     "pássaro"  "minhoca"  "avXstruz" "cisnX"    "XlXfantX"

​

​

  Função trimws()

​

  # A função trimws(x) remove os espaços em branco no início e no final de x

​

  x <- "          Saúde Pública          "
  trimws(x)
  [1] "Saúde Pública"

​

  # ws refere-se a "white space"

​

  # O argumento "l" pode ser utilizado quando se deseja retirar os espaços em

  # branco no início (left) de x, e "r" pode ser utilizado quando se deseja

  # retirar os espaços em branco (right) no final de x

​

  trimws(x,"l")
  [1] "Saúde Pública          "


  trimws(x,"r")
  [1] "          Saúde Pública"

 

​

Visualizando o conteúdo de objetos

​

# seja um vetor x:

​

x <- c(2,6,8,3,5,7,2,9,5,7,3,7,3,7,3,9,3,2,7,3,9,7)

 

# exibindo o conteúdo de x:

​

x

 [1] 2 6 8 3 5 7 2 9 5 7 3 7 3 7 3 9 3 2 7 3 9 7

 

# exibindo o conteúdo de x, usando a função print():

​

print(x)

 [1] 2 6 8 3 5 7 2 9 5 7 3 7 3 7 3 9 3 2 7 3 9 7

 

# exibindo o conteúdo de x, como uma planilha:

 

View(x)

​

# seja uma matriz M:

​

M <- matrix(c(1, 3, 2, 4), ncol = 2, byrow=T, dimnames=list(c("L1","L2"),c("C1","C2")))

​

# a função View() gera o resultado:

​

View(M)​​​​​​​

# a função cat() exibe o resultado de vários objetos concatenados:

​

texto1 <- "A média do vetor x é"

media1 <- mean(x)

cat(texto1,media1)

A média do vetor x é 5.318182>

​

# Observe que, neste caso, o cursor ficará posicionado na mesma linha

# da exibição. Para o cursor retornar para a linha seguinte, use "\n":

​

cat(texto1,media1,"\n")

A média do vetor x é 5.318182

​

# observe que:

​

animais <- c("gato","pássaro","minhoca","avestruz","cisne")

cat(animais)

​

# resulta em:

​

gato pássaro minhoca avestruz cisne>

​

# o argumento sep= identifica um string que será usado entre cada um dos

# objetos declarados na função cat():

​

cat(animais,"\n",sep="****")

gato****pássaro****minhoca****avestruz****cisne****

​

​

Função all.equal()

​

A função all.equal(x,y) compara x e y e retorna TRUE se são iguais ou uma diferença relativa se diferentes.

​

# Exemplos

​

all.equal(6,3*2)
[1] TRUE

​

all.equal(6,pi*2)

[1] "Mean relative difference: 0.04719755"

​

(pi*2-6)/6
[1] 0.04719755

 

​

Função object.size()

​

A função object.size(x) exibe uma estimativa da memória que está sendo usada para guardar o objeto x.

​

# Exemplos

​

animais <- c("gato","pássaro","minhoca","avestruz","cisne")
object.size(animais)
336 bytes

​

M <- matrix(c(1, 3, 2, 4), ncol = 2, byrow=T, dimnames=list(c("L1","L2"),c("C1","C2")))
object.size(M)

704 bytes

​

O símbolo L é usado para denotar um número inteiro.

​

# Exemplo

​

a <- 8
b <- 8L
a == b

[1] TRUE

​

Qual é a vantagem de utilizarmos o símbolo L para denotarmos valores inteiros? Na maioria das vezes, não há vantagens, mas podemos ter uma relativa economia de memória quando utilizamos grandes quantidades de dados. Observe:
 

object.size(c(6,7,3,5,7,3,6))
104 bytes

 

object.size(c(6L,7L,3L,5L,7L,3L,6L))
72 bytes

​

© 2023 por EDSON Z. MARTINEZ. Orgulhosamente criado com Wix.com

  • Instagram
  • White Google+ Icon

.

bottom of page