Aula 1

Prof. Lorenzo Zanette -

Bem vindos ao R & R Studio

  1. Abrir novo script no R Studio (ícone com “+”)

  2. Checar a área de trabalho

Para mandar a linha de comando para o console do R e executá-la teclar: “Ctrl+R” ou “Ctrl+Enter”

ls()
## character(0)

  1. Criar um objeto chamado “obs1” contendo apenas um valor “22” - No. de alunos por semestre
obs1<- 22
obs1
## [1] 22

[1] Indica posição no objeto, neste caso um vetor com apenas uma posição

  1. Criar um objeto chamado “amostra” contendo os valores “19,20,13,14,23”
> amostra<-c(19,20,13,14,23)
> amostra
## [1] 19 20 13 14 23

Extra - qual a diferença de utilização entre “[” e “[[”

> data <- data.frame(x = 1:5, y = 6:10)
> data
##   x  y
## 1 1  6
## 2 2  7
## 3 3  8
## 4 4  9
## 5 5 10
> data[2]
##    y
## 1  6
## 2  7
## 3  8
## 4  9
## 5 10
> data[[2]]
## [1]  6  7  8  9 10

Compare com…

lista <- list(a = 1, b = 2, c = 3)
lista[2] 
## $b
## [1] 2
lista[[2]]
## [1] 2


Sintaxe do R

  • para alocar valores - independente de sua origem - dentro de um objeto utilizar a “seta” <-

  • nome_do_vetor <- (“tudo q vc quizer colocar dentro do vetor”)

  • função(“tudo q vc quiser que a função use”)

  • nome_do_vetor <- função(“tudo q vc quiser que a função use”)

  • utilizar ” ” para caracteres não numéricos, ex. "texto"

  • não utilizar espaços, ex. "Dom Pedro", mas sim "Dom_Pedro"

  • separar decimais com pontos, ex. "1.23", e não "1,23"

  • para fazer comentários no script use #



ls()
## [1] "amostra" "data"    "lista"   "obs1"
rm(amostra,obs)
## Warning in rm(amostra, obs): object 'obs' not found

Variáveis

Variável:Medida para cada observação individual

  1. Quantitativas
ovos
##  [1] 5 3 4 7 6 5 4 8 6 3
pesogalin
##  [1] 3.0 2.8 3.2 3.9 3.5 3.6 3.7 3.3 2.9 2.6
  1. Qualitativas

b.1.Ordenadas

b.1.a.”Informativas”

tamanho
## [1] "grande"  "media"   "pequena"
grandeza
## [1] 3 2 1
desgaste_penas
## [1] 5 4 3 2 1
granja<-cbind(ovos,pesogalin)
granja
##       ovos pesogalin
##  [1,]    5       3.0
##  [2,]    3       2.8
##  [3,]    4       3.2
##  [4,]    7       3.9
##  [5,]    6       3.5
##  [6,]    5       3.6
##  [7,]    4       3.7
##  [8,]    8       3.3
##  [9,]    6       2.9
## [10,]    3       2.6

b.1.b “Não tão informativas”

sitio
## [1] "Do_Caja"      "Do_Pedro"     "Do_PPAmarelo"
cores
## [1] "amarela" "branca"  "preta"
colores
## [1] "cor1" "cor2" "cor3"

Dados…dados..dados…

ls()
##  [1] "colores"        "cores"          "data"           "desgaste_penas"
##  [5] "grandeza"       "granja"         "lista"          "obs1"          
##  [9] "ovos"           "pesogalin"      "sitio"          "tamanho"
pesogalin
##  [1] 3.0 2.8 3.2 3.9 3.5 3.6 3.7 3.3 2.9 2.6
ovos
##  [1] 5 3 4 7 6 5 4 8 6 3
barplot(pesogalin,names.arg=c(1:10),las=1)

hist(pesogalin,las=1)

plot(pesogalin,las=1,col="blue",pch=21)

Q.1 Como ficam os gráficos para “ovos” ?

#Usamos *par* para dividir a área de gráficos, neste caso em 1 linha e 3 colunas
par(mfrow=c(1,3))
barplot(ovos,names.arg=c(1:10),las=1)
hist(ovos,las=1)
plot(ovos,las=1,col="blue",pch=21)

Atentem para o histograma com variável discreta - comparem com o hist. da var. contínua

Q.2 Qual a diferença entre o resultado de barplot e hist ?

R:Vejamos empíricamente

#dividimos área gráfica em 2 linhas e 1 coluna
par(mfrow=c(2,1))

barplot(pesogalin)
# removemos título do gráfico com: **main=""** e alteramos eixo y com **las=1**
hist(pesogalin,main="",las=1)



Acurácia e Precisão

Acurácia

Valor real ~ Valor medido 

Precisão

Qual amostra é mais precisa? Por quê?



pesogalin_p1
##  [1] 3.0 2.8 3.2 3.9 3.5 3.6 3.7 3.3 2.9 2.6
pesogalin_p2
##  [1] 2.77 2.75 2.66 3.54 3.50 3.10 3.80 3.37 2.70 3.85
max_pg1<-c(3.05,2.85,3.25,3.95,3.55,3.65,3.75,3.35,2.95,2.65)
min_pg1<-c(2.95,2.75,3.15,3.85,3.45,3.55,3.65,3.25,2.85,2.55)
intervalo<-max_pg1-min_pg1
tabela_p1<-data.frame(pesogalin_p1,max_pg1,min_pg1,intervalo)
tabela_p1
##    pesogalin_p1 max_pg1 min_pg1 intervalo
## 1           3.0    3.05    2.95       0.1
## 2           2.8    2.85    2.75       0.1
## 3           3.2    3.25    3.15       0.1
## 4           3.9    3.95    3.85       0.1
## 5           3.5    3.55    3.45       0.1
## 6           3.6    3.65    3.55       0.1
## 7           3.7    3.75    3.65       0.1
## 8           3.3    3.35    3.25       0.1
## 9           2.9    2.95    2.85       0.1
## 10          2.6    2.65    2.55       0.1

Q.3 Como fica a tabela para pesogalin_p2, assumindo uma precisão 2 x menor que a encontrada em pesogalin_p1?



ls()
##  [1] "colores"        "cores"          "data"           "desgaste_penas"
##  [5] "grandeza"       "granja"         "intervalo"      "lista"         
##  [9] "max_pg1"        "min_pg1"        "obs1"           "ovos"          
## [13] "pesogalin"      "pesogalin_p1"   "pesogalin_p2"   "sitio"         
## [17] "tabela_p1"      "tamanho"
rm(list=ls(all=TRUE))
ls()
## character(0)
inseticida<-InsectSprays[1:12,1:2]
inseticida
##    count spray
## 1     10     A
## 2      7     A
## 3     20     A
## 4     14     A
## 5     14     A
## 6     12     A
## 7     10     A
## 8     23     A
## 9     17     A
## 10    20     A
## 11    14     A
## 12    13     A
names(inseticida)<-c("mortes","marcas")
inseticida
##    mortes marcas
## 1      10      A
## 2       7      A
## 3      20      A
## 4      14      A
## 5      14      A
## 6      12      A
## 7      10      A
## 8      23      A
## 9      17      A
## 10     20      A
## 11     14      A
## 12     13      A
attach(inseticida)
names(inseticida)
## [1] "mortes" "marcas"

O comandoattachpermite utilizar o nome das váriaveis diretamente, mas pode gerar confusão caso variáveis tenham nomes iguais em objetos diferentes que também estão na área de funções. Para verificar quem está lá utilizar search()

Como ordenar os dados?

rank(mortes)->ranque
sort(mortes)->ordenado
order(mortes)->ordem
ver<-data.frame(mortes,ranque,ordenado,ordem)
ver
##    mortes ranque ordenado ordem
## 1      10    2.5        7     2
## 2       7    1.0       10     1
## 3      20   10.5       10     7
## 4      14    7.0       12     6
## 5      14    7.0       13    12
## 6      12    4.0       14     4
## 7      10    2.5       14     5
## 8      23   12.0       14    11
## 9      17    9.0       17     9
## 10     20   10.5       20     3
## 11     14    7.0       20    10
## 12     13    5.0       23     8
detach(inseticida)
inseticida2<-InsectSprays[13:24,1:2]
inseticida3<-InsectSprays[25:36,1:2]
inseticida2
##    count spray
## 13    11     B
## 14    17     B
## 15    21     B
## 16    11     B
## 17    16     B
## 18    14     B
## 19    17     B
## 20    17     B
## 21    19     B
## 22    21     B
## 23     7     B
## 24    13     B
inseticida3
##    count spray
## 25     0     C
## 26     1     C
## 27     7     C
## 28     2     C
## 29     3     C
## 30     1     C
## 31     2     C
## 32     1     C
## 33     3     C
## 34     0     C
## 35     1     C
## 36     4     C

Q.4 Ordenar de forma decrescente os dados em inseticida2 e inseticida3?

inseticida4<-InsectSprays[49:72,1:2]
inseticida4
##    count spray
## 49     3     E
## 50     5     E
## 51     3     E
## 52     5     E
## 53     3     E
## 54     6     E
## 55     1     E
## 56     1     E
## 57     3     E
## 58     2     E
## 59     6     E
## 60     4     E
## 61    11     F
## 62     9     F
## 63    15     F
## 64    22     F
## 65    15     F
## 66    16     F
## 67    13     F
## 68    10     F
## 69    26     F
## 70    26     F
## 71    24     F
## 72    13     F

Q.5 Separar inseticida4 em duas tabelas, de acordo com o inseticida usado

inseticida5<-rbind(inseticida2,inseticida4)
attach(inseticida5)
names(inseticida5)
## [1] "count" "spray"
spray[order(count)]
##  [1] E E E E E E E E E E E E B F F B B F B F F B F F B F B B B B B B F F F F
## Levels: A B C D E F

Q.6 Para que foi utilizada a linha de comando spray[order(count)]?