27 de janeiro de 2016
"Este é um texto qualquer." # character
## [1] "Este é um texto qualquer."
TRUE # lógico
## [1] TRUE
10 # numérico
## [1] 10
str("Este é um texto qualquer.")
## chr "Este é um texto qualquer."
str(TRUE)
## logi TRUE
str(10)
## num 10
c(TRUE, TRUE, FALSE)
## [1] TRUE TRUE FALSE
c(1,2,3)
## [1] 1 2 3
c("Texto 1", "Texto 2")
## [1] "Texto 1" "Texto 2"
c(1, TRUE, "Texto")
## [1] "1" "TRUE" "Texto"
str(c(1, TRUE, "Texto"))
## chr [1:3] "1" "TRUE" "Texto"
Sugestão de leitura: R Data Structures
numeros <- c(1, 2, 3) numeros
## [1] 1 2 3
numeros - 1
## [1] 0 1 2
5 * c(1, 2, 3)
## [1] 5 10 15
c(5,5,5) * c(1, 2, 3)
## [1] 5 10 15
c(1,2,3) * c(1, 2, 3)
## [1] 1 4 9
DF <- data.frame(ANO = c(2015, 2015, 2016, 2016), FONTE = c(10, 60, 10, 60), VALOR = c(10, 20, 50, 50)) DF
## ANO FONTE VALOR ## 1 2015 10 10 ## 2 2015 60 20 ## 3 2016 10 50 ## 4 2016 60 50
DF[linhas, colunas]
# seleciona as duas primeiras linhas (e todas as colunas) DF[c(TRUE, TRUE, FALSE, FALSE), ]
## ANO FONTE VALOR ## 1 2015 10 10 ## 2 2015 60 20
DF[c(1, 2), ] # seleciona as duas primeiras linhas (e todas as colunas)
## ANO FONTE VALOR ## 1 2015 10 10 ## 2 2015 60 20
DF$ANO == 2015
## [1] TRUE TRUE FALSE FALSE
DF[DF$ANO == 2015, ] # O operador '$' seleciona uma coluna da base de dados.
## ANO FONTE VALOR ## 1 2015 10 10 ## 2 2015 60 20
DF[linhas, colunas]
DF[, "ANO"] # seleciona a coluna ANO (e todas as linhas)
## [1] 2015 2015 2016 2016
DF[, 1] # seleciona a primeira coluna (e todas as linhas)
## [1] 2015 2015 2016 2016
DF[, c(TRUE, FALSE)] # seleciona a primeira coluna (e todas as linhas)
## ANO VALOR ## 1 2015 10 ## 2 2015 20 ## 3 2016 50 ## 4 2016 50
names(DF)
## [1] "ANO" "FONTE" "VALOR"
names(DF) == "ANO"
## [1] TRUE FALSE FALSE
names(DF) %in% c("ANO", "VALOR")
## [1] TRUE FALSE TRUE
DF[, names(DF) %in% c("ANO", "VALOR")]
## ANO VALOR ## 1 2015 10 ## 2 2015 20 ## 3 2016 50 ## 4 2016 50
Além de selecionar linhas e colunas, com o pacote data.table também é possível realizar operações sobre as colunas e fazer agregações.
library(data.table) DT <- data.table(DF) DT
## ANO FONTE VALOR ## 1: 2015 10 10 ## 2: 2015 60 20 ## 3: 2016 10 50 ## 4: 2016 60 50
DT[linhas, colunas/operações, quebras/agregações]
DT[ANO==2015, sum(VALOR)] # Soma a coluna VALOR onde ANO == 2015
## [1] 30
DT[, sum(VALOR), ANO] # Soma a coluna VALOR por ANO (todas as linhas)
## ANO V1 ## 1: 2015 30 ## 2: 2016 100
DT[, list(SOMA_VALOR = sum(VALOR)), ANO] # Define nome
## ANO SOMA_VALOR ## 1: 2015 30 ## 2: 2016 100
DT
## ANO FONTE VALOR ## 1: 2015 10 10 ## 2: 2015 60 20 ## 3: 2016 10 50 ## 4: 2016 60 50
DT[, MEDIA_VALOR := mean(VALOR), ANO]; DT
## ANO FONTE VALOR MEDIA_VALOR ## 1: 2015 10 10 15 ## 2: 2015 60 20 15 ## 3: 2016 10 50 50 ## 4: 2016 60 50 50