Vetores

Criando vetores - por exemplo a função c() pode ser usado para criar os objetos dos vetores

Empresa <- c("Apple", "Samsumg", "Xioami", "LG", "Motorola") ##Caracteres
Qtd <- c(90, 95, 85, 60, 70) ##Numérico
x <- c(TRUE, FALSE) ##Lógico
#ou
s <- c(T, F) ##Lógico
t <- c(2015:2020) ##Inteiro
y <- c(1+0i, 2+4i) ##Complexo

Usando a funçao vector

t <- vector("numeric", length = 3)
t
## [1] 0 0 0

Dá pra criar objetos mistos no vetor

x <- c("Apple",90,TRUE)

Podemos explicitamente coagir objetos transformando-os de uma classe em outra, usando funções que geralmente começam com a palavra “as”.

t <- c(2015:2020)
class(t)
## [1] "integer"
as.numeric(t)
## [1] 2015 2016 2017 2018 2019 2020
as.logical(t)
## [1] TRUE TRUE TRUE TRUE TRUE TRUE
as.character(t)
## [1] "2015" "2016" "2017" "2018" "2019" "2020"

Listas

É um tipo de vetor que pode conter elementos de diferentes classes

x <- list("Apple", 95, TRUE, 1+4i)
x
## [[1]]
## [1] "Apple"
## 
## [[2]]
## [1] 95
## 
## [[3]]
## [1] TRUE
## 
## [[4]]
## [1] 1+4i

Matrizes

Matrizes são vetores com uma dimensão atribuída

m <- matrix(nrow = 3, ncol = 5)
m
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   NA   NA   NA   NA   NA
## [2,]   NA   NA   NA   NA   NA
## [3,]   NA   NA   NA   NA   NA
dim(m)
## [1] 3 5
attributes(m)
## $dim
## [1] 3 5
m <- matrix(1:6, nrow = 2, ncol = 3)
m
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6

Ajeitando a coluna com o codigo dim()

m <- 1:10
dim(m) <- c(2,5)
m
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    3    5    7    9
## [2,]    2    4    6    8   10

Forma bem comum de criar uma matriz é por meio da vinculação de colunas ou linhas. Assim, essa atribuição por colunas ou por linhas pode ser feita por meio das funções “cbind()” e “rbind()”, respectivamente.

Empresa <- c("Apple", "Samsumg", "Xioami", "LG", "Motorola") ##Caracteres
Qtd <- c(90, 95, 85, 60, 70)

cbind (Empresa, Qtd)
##      Empresa    Qtd 
## [1,] "Apple"    "90"
## [2,] "Samsumg"  "95"
## [3,] "Xioami"   "85"
## [4,] "LG"       "60"
## [5,] "Motorola" "70"
rbind (Empresa, Qtd)
##         [,1]    [,2]      [,3]     [,4] [,5]      
## Empresa "Apple" "Samsumg" "Xioami" "LG" "Motorola"
## Qtd     "90"    "95"      "85"     "60" "70"

Fatores

Um fator é um tipo especial de vetor, que é usado para armazenar dados categóricos. Existem dois tipos de fator: ordenado (ordered) e desordenado (unordered), então pode-se pensar neles como sendo estruturas para armazenar dados que possuem rótulos categorizando-os mas, sem uma ordem determinada.

Time <- factor(c("W","W","W","W","L","L","L","L","W","L","W","L","L","W","W","W",
                 "W","W","W","W","W","L","W","W","W","W","L","L","L"))
Time
##  [1] W W W W L L L L W L W L L W W W W W W W W L W W W W L L L
## Levels: L W
table(Time)
## Time
##  L  W 
## 11 18
unclass(Time)
##  [1] 2 2 2 2 1 1 1 1 2 1 2 1 1 2 2 2 2 2 2 2 2 1 2 2 2 2 1 1 1
## attr(,"levels")
## [1] "L" "W"

Valores Ausentes

Esses valores no R são denotados por NA or NaN. NaN é utilizado para operações matemáticas indefinidas, enquanto NA é usado para o restante dos casos.

x <- c(NaN,152, 256, 465, 521, NA, 740, 912, NA)
is.na(x)
## [1]  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
is.nan(x)
## [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

Data Frames

Data frames, que são utilizados em R para armazenar dados em forma de tabela.

Empresa <- c("Apple", "Samsumg", "Xioami", "LG", "Motorola") 
Qtd <- c(90, 95, 85, 60, 70)

Dados <- data.frame(CNPJ = Empresa, Vendas = Qtd)
Dados

Nomes

Objetos em R também podem ser nomeados.

Qtd <- c(90, 95, 85, 60, 70)
names(Qtd) <- c("Apple", "Samsumg", "Xioami", "LG", "Motorola")
Qtd
##    Apple  Samsumg   Xioami       LG Motorola 
##       90       95       85       60       70
x <- c(950,152, NA, 465, 521, 686, 740, 912, 846)
m <- matrix(x, nrow = 3, ncol = 3)
dimnames(m) <- list(c("BOS", "TOR", "SF"), c("NYY", "WSH", "LAD"))
m
##     NYY WSH LAD
## BOS 950 465 740
## TOR 152 521 912
## SF   NA 686 846

Subconjuntos

Existem algumas operações que você pode usar para extrair subconjuntos de diferentes tipos de objetos do R. Tem o colchete simples [ ], O colchete duplo [[ ]]. Os princípios básicos que temos que lembrar é que o colchete simples sempre retorno um objeto da mesma classe do original. O operador de colchete duplo é usado para extrair elementos de uma lista um DataFrame. Ele só pode ser usado para extrair um único elemento do objeto que deve ser uma lista ou data frame.

Empresa <- c("Apple", "Samsumg", "Xioami", "LG", "Motorola")
Qtd2019 <- c(90, 95, 85, 60, 70)
Qtd2020 <- c(85, 95, 90, 55, 75)
rbind(Empresa, Qtd2019, Qtd2020)
##         [,1]    [,2]      [,3]     [,4] [,5]      
## Empresa "Apple" "Samsumg" "Xioami" "LG" "Motorola"
## Qtd2019 "90"    "95"      "85"     "60" "70"      
## Qtd2020 "85"    "95"      "90"     "55" "75"
x <- list(CNPJ = Empresa, "2019" = Qtd2019, "2020" = Qtd2020)
x[1]
## $CNPJ
## [1] "Apple"    "Samsumg"  "Xioami"   "LG"       "Motorola"
x[[1]]
## [1] "Apple"    "Samsumg"  "Xioami"   "LG"       "Motorola"
x$"2019"
## [1] 90 95 85 60 70
x[["2019"]]
## [1] 90 95 85 60 70
x["2019"]
## $`2019`
## [1] 90 95 85 60 70
x[[c(1,4)]]
## [1] "LG"
x[[1]][[4]]
## [1] "LG"
y <- matrix(Empresa, Qtd2019, 5,2)
y[1]
## [1] "Apple"
y[1, , drop = FALSE]
##      [,1]    [,2]      [,3]     [,4] [,5]      
## [1,] "Apple" "Samsumg" "Xioami" "LG" "Motorola"
# Remover os NAs

x <- c(1,2,NA,4,NA,5)
bad <- is.na(x)
x[!bad]
## [1] 1 2 4 5
airquality [1:6, ]
good <- complete.cases(airquality)
airquality [good, ][1:6, ]

Operacionalizando Vetores

Marca <- c("Apple", "Samsumg", "Xioami", "LG", "Motorola") 
Joao <- c(90, 95, 85, 60, 70)
Maria <- c(95, 90, 80,60,75)

m <- rbind (Joao, Maria)
colnames(m) <- paste(Marca) 
m
##       Apple Samsumg Xioami LG Motorola
## Joao     90      95     85 60       70
## Maria    95      90     80 60       75
A <- rbind(Joao + Maria)
colnames(A) <- paste(Marca) 
A
##      Apple Samsumg Xioami  LG Motorola
## [1,]   185     185    165 120      145
B <- rbind(Joao/Maria)
colnames(B) <- paste(Marca)
B
##          Apple  Samsumg Xioami LG  Motorola
## [1,] 0.9473684 1.055556 1.0625  1 0.9333333
#verdadeira multiplicação de matrizes
x <- matrix(1:4, 2,2)
y <- matrix(c(10, 4), 2,1)
x%*%y
##      [,1]
## [1,]   22
## [2,]   36
LS0tDQp0aXRsZTogIlRpcG9zIGRlIERhZG9zIg0KYXV0aG9yOiAiUmFmYWVsIFl1a2lvIE0uIFlhZ3VpbnVtYSINCmxpbmtjb2xvcjogYmx1ZQ0KDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIHRoZW1lOiBkZWZhdWx0DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6IHllcw0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIGZpZ19jYXB0aW9uOiB0cnVlDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KLS0tDQoNCiMjIFZldG9yZXMgDQoNCkNyaWFuZG8gdmV0b3JlcyAtIHBvciBleGVtcGxvIGEgZnVuw6fDo28gYygpIHBvZGUgc2VyIHVzYWRvIHBhcmEgY3JpYXIgb3Mgb2JqZXRvcyBkb3MgdmV0b3Jlcw0KYGBge3J9DQoNCg0KRW1wcmVzYSA8LSBjKCJBcHBsZSIsICJTYW1zdW1nIiwgIlhpb2FtaSIsICJMRyIsICJNb3Rvcm9sYSIpICMjQ2FyYWN0ZXJlcw0KUXRkIDwtIGMoOTAsIDk1LCA4NSwgNjAsIDcwKSAjI051bcOpcmljbw0KeCA8LSBjKFRSVUUsIEZBTFNFKSAjI0zDs2dpY28NCiNvdQ0KcyA8LSBjKFQsIEYpICMjTMOzZ2ljbw0KdCA8LSBjKDIwMTU6MjAyMCkgIyNJbnRlaXJvDQp5IDwtIGMoMSswaSwgMis0aSkgIyNDb21wbGV4bw0KYGBgDQpVc2FuZG8gYSBmdW7Dp2FvIHZlY3Rvcg0KYGBge3J9DQoNCnQgPC0gdmVjdG9yKCJudW1lcmljIiwgbGVuZ3RoID0gMykNCnQNCmBgYA0KRMOhIHByYSBjcmlhciBvYmpldG9zIG1pc3RvcyBubyB2ZXRvcg0KYGBge3J9DQoNCnggPC0gYygiQXBwbGUiLDkwLFRSVUUpDQpgYGANClBvZGVtb3MgZXhwbGljaXRhbWVudGUgY29hZ2lyIG9iamV0b3MgdHJhbnNmb3JtYW5kby1vcyBkZSB1bWEgY2xhc3NlIGVtIG91dHJhLCB1c2FuZG8gZnVuw6fDtWVzIHF1ZSBnZXJhbG1lbnRlIGNvbWXDp2FtIGNvbSBhIHBhbGF2cmEgImFzIi4NCmBgYHtyfQ0KDQp0IDwtIGMoMjAxNToyMDIwKQ0KY2xhc3ModCkNCmFzLm51bWVyaWModCkNCmFzLmxvZ2ljYWwodCkNCmFzLmNoYXJhY3Rlcih0KQ0KYGBgDQoNCiMjIExpc3Rhcw0KDQrDiSB1bSB0aXBvIGRlIHZldG9yIHF1ZSBwb2RlIGNvbnRlciBlbGVtZW50b3MgZGUgZGlmZXJlbnRlcyBjbGFzc2VzDQpgYGB7cn0NCg0KeCA8LSBsaXN0KCJBcHBsZSIsIDk1LCBUUlVFLCAxKzRpKQ0KeA0KDQoNCmBgYA0KDQojIyBNYXRyaXplcw0KDQpNYXRyaXplcyBzw6NvIHZldG9yZXMgY29tIHVtYSBkaW1lbnPDo28gYXRyaWJ1w61kYQ0KYGBge3J9DQoNCm0gPC0gbWF0cml4KG5yb3cgPSAzLCBuY29sID0gNSkNCm0NCmRpbShtKQ0KYXR0cmlidXRlcyhtKQ0KDQpgYGANCg0KYGBge3J9DQptIDwtIG1hdHJpeCgxOjYsIG5yb3cgPSAyLCBuY29sID0gMykNCm0NCmBgYA0KQWplaXRhbmRvIGEgY29sdW5hIGNvbSBvIGNvZGlnbyBkaW0oKQ0KYGBge3J9DQptIDwtIDE6MTANCmRpbShtKSA8LSBjKDIsNSkNCm0NCmBgYA0KRm9ybWEgYmVtIGNvbXVtIGRlIGNyaWFyIHVtYSBtYXRyaXogw6kgcG9yIG1laW8gZGEgdmluY3VsYcOnw6NvIGRlIGNvbHVuYXMgb3UgbGluaGFzLiBBc3NpbSwgZXNzYSBhdHJpYnVpw6fDo28gcG9yIGNvbHVuYXMgb3UgcG9yIGxpbmhhcyBwb2RlIHNlciBmZWl0YSBwb3IgbWVpbyBkYXMgZnVuw6fDtWVzICJjYmluZCgpIiBlICJyYmluZCgpIiwgcmVzcGVjdGl2YW1lbnRlLiANCmBgYHtyfQ0KDQpFbXByZXNhIDwtIGMoIkFwcGxlIiwgIlNhbXN1bWciLCAiWGlvYW1pIiwgIkxHIiwgIk1vdG9yb2xhIikgIyNDYXJhY3RlcmVzDQpRdGQgPC0gYyg5MCwgOTUsIDg1LCA2MCwgNzApDQoNCmNiaW5kIChFbXByZXNhLCBRdGQpDQpyYmluZCAoRW1wcmVzYSwgUXRkKQ0KDQpgYGANCg0KIyMgRmF0b3Jlcw0KDQpVbSBmYXRvciDDqSB1bSB0aXBvIGVzcGVjaWFsIGRlIHZldG9yLCBxdWUgw6kgdXNhZG8gcGFyYSBhcm1hemVuYXIgZGFkb3MgY2F0ZWfDs3JpY29zLiBFeGlzdGVtIGRvaXMgdGlwb3MgZGUgZmF0b3I6IG9yZGVuYWRvIChvcmRlcmVkKSBlIGRlc29yZGVuYWRvICh1bm9yZGVyZWQpLCBlbnTDo28gcG9kZS1zZSBwZW5zYXIgbmVsZXMgY29tbyBzZW5kbyBlc3RydXR1cmFzIHBhcmEgYXJtYXplbmFyIGRhZG9zIHF1ZSBwb3NzdWVtIHLDs3R1bG9zIGNhdGVnb3JpemFuZG8tb3MgbWFzLCBzZW0gdW1hIG9yZGVtIGRldGVybWluYWRhLiANCmBgYHtyfQ0KDQpUaW1lIDwtIGZhY3RvcihjKCJXIiwiVyIsIlciLCJXIiwiTCIsIkwiLCJMIiwiTCIsIlciLCJMIiwiVyIsIkwiLCJMIiwiVyIsIlciLCJXIiwNCiAgICAgICAgICAgICAgICAgIlciLCJXIiwiVyIsIlciLCJXIiwiTCIsIlciLCJXIiwiVyIsIlciLCJMIiwiTCIsIkwiKSkNClRpbWUNCnRhYmxlKFRpbWUpDQp1bmNsYXNzKFRpbWUpDQoNCmBgYA0KDQojIyBWYWxvcmVzIEF1c2VudGVzDQoNCkVzc2VzIHZhbG9yZXMgbm8gUiBzw6NvIGRlbm90YWRvcyBwb3IgTkEgb3IgTmFOLiBOYU4gw6kgdXRpbGl6YWRvIHBhcmEgb3BlcmHDp8O1ZXMgbWF0ZW3DoXRpY2FzIGluZGVmaW5pZGFzLCBlbnF1YW50byBOQSDDqSB1c2FkbyBwYXJhIG8gcmVzdGFudGUgZG9zIGNhc29zLg0KYGBge3J9DQoNCnggPC0gYyhOYU4sMTUyLCAyNTYsIDQ2NSwgNTIxLCBOQSwgNzQwLCA5MTIsIE5BKQ0KaXMubmEoeCkNCmlzLm5hbih4KQ0KYGBgDQoNCiMjIERhdGEgRnJhbWVzDQoNCkRhdGEgZnJhbWVzLCBxdWUgc8OjbyB1dGlsaXphZG9zIGVtIFIgcGFyYSBhcm1hemVuYXIgZGFkb3MgZW0gZm9ybWEgZGUgdGFiZWxhLg0KYGBge3J9DQoNCkVtcHJlc2EgPC0gYygiQXBwbGUiLCAiU2Ftc3VtZyIsICJYaW9hbWkiLCAiTEciLCAiTW90b3JvbGEiKSANClF0ZCA8LSBjKDkwLCA5NSwgODUsIDYwLCA3MCkNCg0KRGFkb3MgPC0gZGF0YS5mcmFtZShDTlBKID0gRW1wcmVzYSwgVmVuZGFzID0gUXRkKQ0KRGFkb3MNCmBgYA0KDQojIyBOb21lcw0KDQpPYmpldG9zIGVtIFIgdGFtYsOpbSBwb2RlbSBzZXIgbm9tZWFkb3MuDQpgYGB7cn0NCg0KUXRkIDwtIGMoOTAsIDk1LCA4NSwgNjAsIDcwKQ0KbmFtZXMoUXRkKSA8LSBjKCJBcHBsZSIsICJTYW1zdW1nIiwgIlhpb2FtaSIsICJMRyIsICJNb3Rvcm9sYSIpDQpRdGQNCnggPC0gYyg5NTAsMTUyLCBOQSwgNDY1LCA1MjEsIDY4NiwgNzQwLCA5MTIsIDg0NikNCm0gPC0gbWF0cml4KHgsIG5yb3cgPSAzLCBuY29sID0gMykNCmRpbW5hbWVzKG0pIDwtIGxpc3QoYygiQk9TIiwgIlRPUiIsICJTRiIpLCBjKCJOWVkiLCAiV1NIIiwgIkxBRCIpKQ0KbQ0KDQpgYGANCiMjIFN1YmNvbmp1bnRvcw0KDQpFeGlzdGVtIGFsZ3VtYXMgb3BlcmHDp8O1ZXMgcXVlIHZvY8OqIHBvZGUgdXNhciBwYXJhIGV4dHJhaXIgc3ViY29uanVudG9zIGRlIGRpZmVyZW50ZXMgdGlwb3MgZGUgb2JqZXRvcyBkbyBSLiBUZW0gbyBjb2xjaGV0ZSBzaW1wbGVzIFsgXSwgTyBjb2xjaGV0ZSBkdXBsbyBbWyBdXS4gT3MgcHJpbmPDrXBpb3MgYsOhc2ljb3MgcXVlIHRlbW9zIHF1ZSBsZW1icmFyIMOpIHF1ZSBvIGNvbGNoZXRlIHNpbXBsZXMgc2VtcHJlIHJldG9ybm8gdW0gb2JqZXRvIGRhIG1lc21hIGNsYXNzZSBkbyBvcmlnaW5hbC4gTyBvcGVyYWRvciBkZSBjb2xjaGV0ZSBkdXBsbyDDqSB1c2FkbyBwYXJhIGV4dHJhaXIgZWxlbWVudG9zIGRlIHVtYSBsaXN0YSB1bSBEYXRhRnJhbWUuIEVsZSBzw7MgcG9kZSBzZXIgdXNhZG8gcGFyYSBleHRyYWlyIHVtIMO6bmljbyBlbGVtZW50byBkbyBvYmpldG8gcXVlIGRldmUgc2VyIHVtYSBsaXN0YSBvdSBkYXRhIGZyYW1lLiANCmBgYHtyfQ0KDQpFbXByZXNhIDwtIGMoIkFwcGxlIiwgIlNhbXN1bWciLCAiWGlvYW1pIiwgIkxHIiwgIk1vdG9yb2xhIikNClF0ZDIwMTkgPC0gYyg5MCwgOTUsIDg1LCA2MCwgNzApDQpRdGQyMDIwIDwtIGMoODUsIDk1LCA5MCwgNTUsIDc1KQ0KcmJpbmQoRW1wcmVzYSwgUXRkMjAxOSwgUXRkMjAyMCkNCnggPC0gbGlzdChDTlBKID0gRW1wcmVzYSwgIjIwMTkiID0gUXRkMjAxOSwgIjIwMjAiID0gUXRkMjAyMCkNCnhbMV0NCnhbWzFdXQ0KeCQiMjAxOSINCnhbWyIyMDE5Il1dDQp4WyIyMDE5Il0NCnhbW2MoMSw0KV1dDQp4W1sxXV1bWzRdXQ0KDQp5IDwtIG1hdHJpeChFbXByZXNhLCBRdGQyMDE5LCA1LDIpDQp5WzFdDQp5WzEsICwgZHJvcCA9IEZBTFNFXQ0KDQojIFJlbW92ZXIgb3MgTkFzDQoNCnggPC0gYygxLDIsTkEsNCxOQSw1KQ0KYmFkIDwtIGlzLm5hKHgpDQp4WyFiYWRdDQphaXJxdWFsaXR5IFsxOjYsIF0NCmdvb2QgPC0gY29tcGxldGUuY2FzZXMoYWlycXVhbGl0eSkNCmFpcnF1YWxpdHkgW2dvb2QsIF1bMTo2LCBdDQpgYGBgDQoNCiMjIE9wZXJhY2lvbmFsaXphbmRvIFZldG9yZXMNCg0KYGBge3J9DQoNCk1hcmNhIDwtIGMoIkFwcGxlIiwgIlNhbXN1bWciLCAiWGlvYW1pIiwgIkxHIiwgIk1vdG9yb2xhIikgDQpKb2FvIDwtIGMoOTAsIDk1LCA4NSwgNjAsIDcwKQ0KTWFyaWEgPC0gYyg5NSwgOTAsIDgwLDYwLDc1KQ0KDQptIDwtIHJiaW5kIChKb2FvLCBNYXJpYSkNCmNvbG5hbWVzKG0pIDwtIHBhc3RlKE1hcmNhKSANCm0NCg0KQSA8LSByYmluZChKb2FvICsgTWFyaWEpDQpjb2xuYW1lcyhBKSA8LSBwYXN0ZShNYXJjYSkgDQpBDQpCIDwtIHJiaW5kKEpvYW8vTWFyaWEpDQpjb2xuYW1lcyhCKSA8LSBwYXN0ZShNYXJjYSkNCkINCg0KI3ZlcmRhZGVpcmEgbXVsdGlwbGljYcOnw6NvIGRlIG1hdHJpemVzDQp4IDwtIG1hdHJpeCgxOjQsIDIsMikNCnkgPC0gbWF0cml4KGMoMTAsIDQpLCAyLDEpDQp4JSoleQ0KDQpgYGA=