Objetivo da aula

Ao final desta aula, você aprenderá:

  • Abrir um banco de dados nos formatos csv e txt
  • Usar funções e operações fundamentais para análise dos dados
  • Separar o banco em subgrupos para analises posteriores.

Arquivos para esta aula

Como abrir banco de dados

A maior parte dos bancos estão nos formatos:

  • txt - texto
  • csv (Comma Separated Values) - texto separados por vírgula

Outros formatos

Existem infinitos formatos de bancos de dados.

  • foreign, Hmisc são pacotes que podem ajudá-lo.
  • Não deixe de procurar no são google!

Defina seu diretório de trabalho

  • Lembre-se sempre de definir um diretório de trabalho.
  • Seu arquivo com o banco deve estar dentro deste diretório.
  • Ao trabalhar dentro de um projeto do RStudio, o diretório de trabalho é configurado automaticamente.

Ex:

setwd("~/Dropbox/cursos/r-psicologia/2-curso/aula-1-pratica")

Abrir o banco

Para abrir o banco, use a função:

  • read.csv
str(read.csv)
## function (file, header = TRUE, sep = ",", quote = "\"", dec = ".", 
##     fill = TRUE, comment.char = "", ...)
  • ! Lembre-se de atribuir a um objeto, ex: dados <- read.csv("meubanco.csv")

Atividade 1

Abra o banco autoestima.csv.

Resposta

dados <- read.csv("autoestima.csv")

Função names

Lista os nomes das variáveis.

names(dados)
##  [1] "X"          "v1"         "v2"         "v3"         "v4"        
##  [6] "v5"         "v6"         "v7"         "v8"         "v9"        
## [11] "v10"        "v11"        "v12"        "v13"        "v14"       
## [16] "v15"        "v16"        "v17"        "v18"        "v19"       
## [21] "v10r"       "v11r"       "v12r"       "v13r"       "v14r"      
## [26] "v15r"       "v16r"       "v17r"       "v18r"       "v19r"      
## [31] "somaescala"

! Os nomes são estranhos! Não deixe de consultar o dicionário do banco!!

Função str

Mostra a estrutura de um objeto

str(dados)
## 'data.frame':    56 obs. of  31 variables:
##  $ X         : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ v1        : Factor w/ 56 levels "22/07/2013 19:31:52",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ v2        : logi  NA NA NA NA NA NA ...
##  $ v3        : int  22 23 22 21 26 20 27 16 23 22 ...
##  $ v4        : logi  NA NA NA NA NA NA ...
##  $ v5        : logi  NA NA NA NA NA NA ...
##  $ v6        : Factor w/ 2 levels "Feminino","Masculino": 1 1 1 1 1 1 2 1 1 1 ...
##  $ v7        : Factor w/ 3 levels "Casado(a)","Divorciado(a)/Separado(a)",..: 3 3 3 3 2 3 3 3 3 3 ...
##  $ v8        : Factor w/ 5 levels "Ensino Fundamental Completo",..: 5 5 5 5 2 5 2 3 5 5 ...
##  $ v9        : Factor w/ 2 levels "Não","Sim": 2 2 1 1 2 2 2 2 1 1 ...
##  $ v10       : Factor w/ 3 levels "Concordo","Concordo Plenamente",..: 1 2 1 3 3 1 2 1 1 1 ...
##  $ v11       : Factor w/ 4 levels "Concordo","Concordo Plenamente",..: 3 1 4 1 1 4 1 1 4 1 ...
##  $ v12       : Factor w/ 3 levels "Concordo","Concordo Plenamente",..: 1 1 1 3 3 2 2 2 2 1 ...
##  $ v13       : Factor w/ 3 levels "Concordo","Concordo Plenamente",..: 2 3 1 1 2 2 2 2 2 3 ...
##  $ v14       : Factor w/ 4 levels "Concordo","Concordo Plenamente",..: 3 2 3 3 1 4 1 1 2 3 ...
##  $ v15       : Factor w/ 4 levels "Concordo","Concordo Plenamente",..: 4 2 1 1 1 4 2 1 4 3 ...
##  $ v16       : Factor w/ 3 levels "Concordo","Concordo Plenamente",..: 2 1 1 3 2 1 2 1 2 1 ...
##  $ v17       : Factor w/ 4 levels "Concordo","Concordo Plenamente",..: 3 3 1 1 2 4 2 3 4 3 ...
##  $ v18       : Factor w/ 4 levels "Concordo","Concordo Plenamente",..: 4 2 3 3 1 4 3 3 4 3 ...
##  $ v19       : Factor w/ 4 levels "Concordo","Concordo Plenamente",..: 2 4 1 1 3 1 2 1 1 1 ...
##  $ v10r      : int  3 4 3 2 2 3 4 3 3 3 ...
##  $ v11r      : int  2 3 1 3 3 1 3 3 1 3 ...
##  $ v12r      : int  3 3 3 2 2 4 4 4 4 3 ...
##  $ v13r      : int  4 2 3 3 4 4 4 4 4 2 ...
##  $ v14r      : int  2 4 2 2 3 1 3 3 4 2 ...
##  $ v15r      : int  1 4 3 3 3 1 4 3 1 2 ...
##  $ v16r      : int  4 3 3 2 4 3 4 3 4 3 ...
##  $ v17r      : int  2 2 3 3 4 1 4 2 1 2 ...
##  $ v18r      : int  1 4 2 2 3 1 2 2 1 2 ...
##  $ v19r      : int  4 1 3 3 2 3 4 3 3 3 ...
##  $ somaescala: int  26 30 26 25 30 22 36 30 26 25 ...

Função head e tail

Mostra os primeiros e últimos valores, respectivamente

head(dados)
##   X                  v1 v2 v3 v4 v5       v6                        v7
## 1 1 22/07/2013 19:31:52 NA 22 NA NA Feminino               Solteiro(a)
## 2 2 22/07/2013 19:32:59 NA 23 NA NA Feminino               Solteiro(a)
## 3 3 22/07/2013 19:34:35 NA 22 NA NA Feminino               Solteiro(a)
## 4 4 22/07/2013 19:34:46 NA 21 NA NA Feminino               Solteiro(a)
## 5 5 22/07/2013 19:35:16 NA 26 NA NA Feminino Divorciado(a)/Separado(a)
## 6 6 22/07/2013 19:37:39 NA 20 NA NA Feminino               Solteiro(a)
##                           v8  v9                 v10                 v11
## 1 Ensino Superior Incompleto Sim            Concordo            Discordo
## 2 Ensino Superior Incompleto Sim Concordo Plenamente            Concordo
## 3 Ensino Superior Incompleto Não            Concordo Discordo Plenamente
## 4 Ensino Superior Incompleto Não            Discordo            Concordo
## 5      Ensino Médio Completo Sim            Discordo            Concordo
## 6 Ensino Superior Incompleto Sim            Concordo Discordo Plenamente
##                   v12                 v13                 v14
## 1            Concordo Concordo Plenamente            Discordo
## 2            Concordo            Discordo Concordo Plenamente
## 3            Concordo            Concordo            Discordo
## 4            Discordo            Concordo            Discordo
## 5            Discordo Concordo Plenamente            Concordo
## 6 Concordo Plenamente Concordo Plenamente Discordo Plenamente
##                   v15                 v16                 v17
## 1 Discordo Plenamente Concordo Plenamente            Discordo
## 2 Concordo Plenamente            Concordo            Discordo
## 3            Concordo            Concordo            Concordo
## 4            Concordo            Discordo            Concordo
## 5            Concordo Concordo Plenamente Concordo Plenamente
## 6 Discordo Plenamente            Concordo Discordo Plenamente
##                   v18                 v19 v10r v11r v12r v13r v14r v15r
## 1 Discordo Plenamente Concordo Plenamente    3    2    3    4    2    1
## 2 Concordo Plenamente Discordo Plenamente    4    3    3    2    4    4
## 3            Discordo            Concordo    3    1    3    3    2    3
## 4            Discordo            Concordo    2    3    2    3    2    3
## 5            Concordo            Discordo    2    3    2    4    3    3
## 6 Discordo Plenamente            Concordo    3    1    4    4    1    1
##   v16r v17r v18r v19r somaescala
## 1    4    2    1    4         26
## 2    3    2    4    1         30
## 3    3    3    2    3         26
## 4    2    3    2    3         25
## 5    4    4    3    2         30
## 6    3    1    1    3         22

Operações comuns em bancos de dados

Selecionar linhas ou colunas,

  • objeto[linhas , colunas]

Ex:

dados[1:5, ] # Seleciona as linhas de 1 a cinco e lista todas as variáveis
##   X                  v1 v2 v3 v4 v5       v6                        v7
## 1 1 22/07/2013 19:31:52 NA 22 NA NA Feminino               Solteiro(a)
## 2 2 22/07/2013 19:32:59 NA 23 NA NA Feminino               Solteiro(a)
## 3 3 22/07/2013 19:34:35 NA 22 NA NA Feminino               Solteiro(a)
## 4 4 22/07/2013 19:34:46 NA 21 NA NA Feminino               Solteiro(a)
## 5 5 22/07/2013 19:35:16 NA 26 NA NA Feminino Divorciado(a)/Separado(a)
##                           v8  v9                 v10                 v11
## 1 Ensino Superior Incompleto Sim            Concordo            Discordo
## 2 Ensino Superior Incompleto Sim Concordo Plenamente            Concordo
## 3 Ensino Superior Incompleto Não            Concordo Discordo Plenamente
## 4 Ensino Superior Incompleto Não            Discordo            Concordo
## 5      Ensino Médio Completo Sim            Discordo            Concordo
##        v12                 v13                 v14                 v15
## 1 Concordo Concordo Plenamente            Discordo Discordo Plenamente
## 2 Concordo            Discordo Concordo Plenamente Concordo Plenamente
## 3 Concordo            Concordo            Discordo            Concordo
## 4 Discordo            Concordo            Discordo            Concordo
## 5 Discordo Concordo Plenamente            Concordo            Concordo
##                   v16                 v17                 v18
## 1 Concordo Plenamente            Discordo Discordo Plenamente
## 2            Concordo            Discordo Concordo Plenamente
## 3            Concordo            Concordo            Discordo
## 4            Discordo            Concordo            Discordo
## 5 Concordo Plenamente Concordo Plenamente            Concordo
##                   v19 v10r v11r v12r v13r v14r v15r v16r v17r v18r v19r
## 1 Concordo Plenamente    3    2    3    4    2    1    4    2    1    4
## 2 Discordo Plenamente    4    3    3    2    4    4    3    2    4    1
## 3            Concordo    3    1    3    3    2    3    3    3    2    3
## 4            Concordo    2    3    2    3    2    3    2    3    2    3
## 5            Discordo    2    3    2    4    3    3    4    4    3    2
##   somaescala
## 1         26
## 2         30
## 3         26
## 4         25
## 5         30

Outras formas

  • dados[10, "v6"] - Lista a linha 10, variável v6 do banco.
  • dados[10:20, c("v6","v7")] - Lista as linhas 10 até 20, variáveis v6 ou v7.
  • dados$v10 - lista todos os casos da variável v10.

Exercício 2

Liste as três primeiras variáveis das linhas 1 até 10 do banco.

Resposta 2

dados[1:10, 1:3] # Seleciona as linhas de 1 a 5 e listar todas as variáveis
##     X                  v1 v2
## 1   1 22/07/2013 19:31:52 NA
## 2   2 22/07/2013 19:32:59 NA
## 3   3 22/07/2013 19:34:35 NA
## 4   4 22/07/2013 19:34:46 NA
## 5   5 22/07/2013 19:35:16 NA
## 6   6 22/07/2013 19:37:39 NA
## 7   7 22/07/2013 19:43:43 NA
## 8   8 22/07/2013 19:44:34 NA
## 9   9 22/07/2013 19:50:35 NA
## 10 10 22/07/2013 19:52:49 NA

Outra resposta: dados[1:10, c("X","v1","v2")]

Dividir a análise segundo um critério lógico

Ex: Usar dados de pessoas maiores de 18 anos.

dadosMaior  <- subset(dados, dados$v3 >= 18)

Dividir a análise segundo um critério lógico (Cont)

Selecione as pessoas do sexo masculino e maiores que 18 anos

dados2  <- subset(dados, dados$v3 >= 18 & dados$v6 == "Feminino")

Exercício 3

Selecione um banco com pessoas que possuem Ensino Superior Incompleto e sejam maiores que 22 anos.

Resposta 3

dados2  <- subset(dados, dados$v3 >= 22 & dados$v8 == "Ensino Superior Incompleto")

Função table

Tabula o número de elementos.

table(dados$v7)
## 
##                 Casado(a) Divorciado(a)/Separado(a) 
##                         9                         1 
##               Solteiro(a) 
##                        46

Função table (Cont.)

table(dados$v7 != "Solteiro(a)")
## 
## FALSE  TRUE 
##    46    10

Exercício 4

Quantas pessoas possuem mais de 20 anos?

Resposta

table(dados$v3 > 20)
## 
## FALSE  TRUE 
##     2    53