1 Operador de Associação

curso <- "Curso de Auditoria de Dados"

Data <- "23/10/2016"

hora <- "15:09"

Valor <- "R$ 1.650,00"

`Duração do curso` <- "3d"

2 Ambiente R

# Imprime seu diretório corrente 
getwd() 
## [1] "C:/Users/flavi/OneDrive/Source/Repos/DataAudit"
# Lista os objetos em memória
ls()    
## [1] "curso"            "Data"             "Duração do curso"
## [4] "hora"             "Valor"
#Muda de diretório
# muda para o diretório dados
#setwd("./dados/")      
# Visualiza e Grava as opções do ambiente
# Ajuda com as opções disponíveis
#help(options) 
#Lista as OpçÕes disponívies
#options() 
#Configura o número de dígitos para serem impressos na saída
#options(digits=3) 
# Lista o histórico de comandos
#history() # Apresenta os últimos 25 comandos executados
# Apresenta todos os comandos executados
#history(max.show=Inf) 
# Grava o histórico de comandos no arquivo 
#savehistory(file="meu_log.txt") # o padrão é ".Rhistory" 

# Recarrega  a lista de comandos dados
#loadhistory(file="meu_log.txt") # o padrão é ".Rhistory"
# Grava os objetos do ambiente de trabalho no arquivo.RData no diretório corrente 
#save.image()

#Grava objetos específicos em uma arquivo
#Se não for especificado o caminho, o diretório corrente será utilizado
#lista <- ls()
#save(lista,file="meu_ambiente_trabalho.RData")
# Carrega o ambinete de trabalho para a sessão atual
# load a workspace into the current session
# if you don't specify the path, the cwd is assumed 
#load("meu_ambiente_trabalho.RData")
#Sai do R. O R perguntará se deseja gravar o ambiente de trabalho
#q() 

3 Dados

3.1 Associação

3.1.1 Tamanho do objeto associado a variável

# Número de caracters associados a variável quando esta é um caracter

#curso
nchar(curso)
## [1] 27
#Data
nchar(Data)
## [1] 10
#hora
nchar(hora)
## [1] 5
#Duração
nchar(`Duração do curso`)
## [1] 2

3.2 Tipos de Dados

3.2.1 Descobrindo o tipo da variável

#curso
class(curso)
## [1] "character"
#Data
class(Data)
## [1] "character"
#hora
class(hora)
## [1] "character"
#Duração
class(`Duração do curso`)
## [1] "character"

3.2.2 Tipos

3.2.3 Caracter

curso <- "Curso de Auditoria de Dados"

print(curso)
## [1] "Curso de Auditoria de Dados"
class(curso)
## [1] "character"
is.character(curso)
## [1] TRUE

3.2.4 Numérico

x <- 10.2
print(x)
## [1] 10.2
class(x)
## [1] "numeric"

3.2.5 Inteiro

y <- 8
print(y)
## [1] 8
class(y)
## [1] "numeric"

3.2.6 Complexo

Sem aplicação no contexto do curso

3.2.7 Lógico

logico <-  T

print(logico)
## [1] TRUE
l <-  FALSE
print(l)
## [1] FALSE

3.2.8 Data

#Associa
Data <- "23/10/2016"

#Testa o Tipo
class(Data)
## [1] "character"
#Será necessário converter o tipo da variável para Data
Data <- as.Date(Data,"%d/%m/%Y")

#Testa o tipo
class(Data)
## [1] "Date"
#Imprime
print(Data)
## [1] "2016-10-23"
#Formata a Saída
format(Data, "%d/%m%/%Y")
## [1] "23/10/2016"
#Formata a Saída
format(Sys.Date(), "%a %b %d")
## [1] "qui nov 24"
format(Sys.Date(), "%d%b%Y")
## [1] "24nov2016"
format(Sys.Date(), "%d/%m/%Y")
## [1] "24/11/2016"
weekdays(Sys.Date())
## [1] "quinta-feira"
months(Sys.Date())
## [1] "novembro"
as.Date(.leap.seconds)
##  [1] "1972-07-01" "1973-01-01" "1974-01-01" "1975-01-01" "1976-01-01"
##  [6] "1977-01-01" "1978-01-01" "1979-01-01" "1980-01-01" "1981-07-01"
## [11] "1982-07-01" "1983-07-01" "1985-07-01" "1988-01-01" "1990-01-01"
## [16] "1991-01-01" "1992-07-01" "1993-07-01" "1994-07-01" "1996-01-01"
## [21] "1997-07-01" "1999-01-01" "2006-01-01" "2009-01-01" "2012-07-01"
## [26] "2015-07-01"
z <- Sys.Date()
print(z)
## [1] "2016-11-24"
w<- z+10
print(w)
## [1] "2016-12-04"
#Diferença

data1 <- strptime("25/10/2016", format="%d/%m/%Y")
data2 <- strptime("04/11/2016", format="%d/%m/%Y")
difftime(data2,data1,units="days")
## Time difference of 10 days
difftime(data2,data1,units="week")
## Time difference of 1.428571 weeks
# Nota: podemos usar a função trunc() para truncar o valor do resultado da diferença em semanas que no exemplo acima ficou com decimais.

3.2.9 Vetor

c(2, 3, 5) 
## [1] 2 3 5
# Vetor Lógico
c(TRUE, FALSE, TRUE, FALSE, FALSE) 
## [1]  TRUE FALSE  TRUE FALSE FALSE
#Vetor de caracteres
c("aa", "bb", "cc", "dd", "ee") 
## [1] "aa" "bb" "cc" "dd" "ee"
#Tamanho do Vetor
length(c("aa", "bb", "cc", "dd", "ee")) 
## [1] 5

3.2.10 Combinando Vetores

n <- c(2, 3, 5) 
s <- c("aa", "bb", "cc", "dd", "ee") 

#Combinando
c(n, s) 
## [1] "2"  "3"  "5"  "aa" "bb" "cc" "dd" "ee"

3.2.11 Operações com Vetores

#Criando vetores
a <- c(2, 3, 5) 
b <- c(6, 1, 3) 


#Soma
a + b
## [1] 8 4 8
#Subtração
b - a
## [1]  4 -2 -2
#Multiplicação
5*a
## [1] 10 15 25
a * b
## [1] 12  3 15
#Divisão
a/b
## [1] 0.3333333 3.0000000 1.6666667
#Regra de Reciclagem
u <- c(10, 20, 30) 
v <- c(1, 2, 3, 4, 5, 6, 7, 8, 9) 
u + v
## [1] 11 22 33 14 25 36 17 28 39

3.2.12 Índice de Vetores

n <- c(2, 3, 5) 
s <- c("aa", "bb", "cc", "dd", "ee") 

s[3]
## [1] "cc"
#Índice Negativo

s[-3] #Todos menos o elemento listado no índice
## [1] "aa" "bb" "dd" "ee"
# Fora dos Limites

s[10] 
## [1] NA
#Listando mais elementos

s[c(2, 3)] 
## [1] "bb" "cc"
s[c(2, 3, 3)] 
## [1] "bb" "cc" "cc"
# Fora dos Limites

s[c(2, 1, 3)] 
## [1] "bb" "aa" "cc"
# Índice por faixa
s[2:4] 
## [1] "bb" "cc" "dd"
#Nomes nos Vetores
v <- c("Governo", "RJ") 
v 
## [1] "Governo" "RJ"
# Temos agora nomear o primeiro membro como primeiro e o segundo como último

names(v) = c("Primeiro", "Último") 
v 
##  Primeiro    Último 
## "Governo"      "RJ"
# Então, podemos recuperar o primeiro membro pelo seu nome.

v["Primeiro"] 
##  Primeiro 
## "Governo"
# Além disso, podemos inverter a ordem com um vector caráter índice string.

v[c("Último", "Primeiro")] 
##    Último  Primeiro 
##      "RJ" "Governo"

3.3 Matriz

A <- matrix(
  c(2, 4, 3, 1, 5, 7), # os dados dos elementos
  nrow=2,              # número de linhas
  ncol=3,              # número de colunas 
  byrow = TRUE)        # preenche a matriz por linhas

A
##      [,1] [,2] [,3]
## [1,]    2    4    3
## [2,]    1    5    7
A[2, 3]      # elemento da segunda linha e terceira coluna
## [1] 7
A[2, ]       # a segunda linha
## [1] 1 5 7
A[ ,3]       # a terceira coluna
## [1] 3 7
A[ ,c(1,3)] # A primeira e terceira coluna
##      [,1] [,2]
## [1,]    2    3
## [2,]    1    7

3.4 Lista

n  <-  c(2, 3, 5) 
s <-  c("aa", "bb", "cc", "dd", "ee") 
b <-  c(TRUE, FALSE, TRUE, FALSE, FALSE) 
x <-  list(n, s, b, 3)   # x contains copies of n, s, b

x[c(2, 4)] 
## [[1]]
## [1] "aa" "bb" "cc" "dd" "ee"
## 
## [[2]]
## [1] 3
#Referência

x[[2]]
## [1] "aa" "bb" "cc" "dd" "ee"
x[[2]][1] <- "ta" 

#Membros de uma Lista

v <-  list(nivel=c(2, 3, 5), cargo=c("NIVEL-1", "NIVEL-2")) 

v["nivel"]
## $nivel
## [1] 2 3 5
v[["nivel"]] 
## [1] 2 3 5
v$nivel 
## [1] 2 3 5

3.5 Data Frame

n <- c(2, 3, 5) 
s <- c("aa", "bb", "cc") 
b <- c(TRUE, FALSE, TRUE) 
df <- data.frame(n, s, b)  

df
##   n  s     b
## 1 2 aa  TRUE
## 2 3 bb FALSE
## 3 5 cc  TRUE
#Exemplo mais avançado:

ID    <- c(1,2,3,4,5)
IDADE <- c(40,45,25,50,60)
CARGO <- c("TECNICO", "ASSISTENTE", "COORDENADOR","AUXILIAR", "GERENTE")
FORMACAO <- c("ESTATISTICA", "ECONOMIA", "SISTEMAS", "DIREITO","LETRAS")
DEPARTAMENTO = c("DEPARTAMENTO A", "DEPARTAMENTO A", "DEPARTAMENTO A","DEPARTAMENTO B","DEPARTAMENTO B")

RH1 <-data.frame(ID, IDADE, CARGO, FORMACAO, DEPARTAMENTO)

print(RH1)
##   ID IDADE       CARGO    FORMACAO   DEPARTAMENTO
## 1  1    40     TECNICO ESTATISTICA DEPARTAMENTO A
## 2  2    45  ASSISTENTE    ECONOMIA DEPARTAMENTO A
## 3  3    25 COORDENADOR    SISTEMAS DEPARTAMENTO A
## 4  4    50    AUXILIAR     DIREITO DEPARTAMENTO B
## 5  5    60     GERENTE      LETRAS DEPARTAMENTO B
#Data frame de carros - Motor Trend Car Road Tests
print(mtcars)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
#Seleciona a linha 1 e coluna 2
mtcars[1, 2] 
## [1] 6
#Seleciona o carro e a coluna cyl (cilindradas)
mtcars["Mazda RX4", "cyl"] 
## [1] 6
nrow(mtcars) # número de linhas
## [1] 32
ncol(mtcars) # número de colunas
## [1] 11
help(mtcars) # informações sobre este dataframe
## starting httpd help server ...
##  done
#Visualização
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

3.5.1 Coluna do Dataframe

#Seleciona a coluna por número de ordem
#Seleciona os carros automáticos
mtcars[[9]] 
##  [1] 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
#Somente carros automáticos (9 coluna)
mtcars[["am"]] 
##  [1] 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
mtcars$am 
##  [1] 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
mtcars[,"am"] 
##  [1] 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
#Por Índice
mtcars[1] # Seleciona a coluna 1 - mpg
##                      mpg
## Mazda RX4           21.0
## Mazda RX4 Wag       21.0
## Datsun 710          22.8
## Hornet 4 Drive      21.4
## Hornet Sportabout   18.7
## Valiant             18.1
## Duster 360          14.3
## Merc 240D           24.4
## Merc 230            22.8
## Merc 280            19.2
## Merc 280C           17.8
## Merc 450SE          16.4
## Merc 450SL          17.3
## Merc 450SLC         15.2
## Cadillac Fleetwood  10.4
## Lincoln Continental 10.4
## Chrysler Imperial   14.7
## Fiat 128            32.4
## Honda Civic         30.4
## Toyota Corolla      33.9
## Toyota Corona       21.5
## Dodge Challenger    15.5
## AMC Javelin         15.2
## Camaro Z28          13.3
## Pontiac Firebird    19.2
## Fiat X1-9           27.3
## Porsche 914-2       26.0
## Lotus Europa        30.4
## Ford Pantera L      15.8
## Ferrari Dino        19.7
## Maserati Bora       15.0
## Volvo 142E          21.4
mtcars["mpg"] 
##                      mpg
## Mazda RX4           21.0
## Mazda RX4 Wag       21.0
## Datsun 710          22.8
## Hornet 4 Drive      21.4
## Hornet Sportabout   18.7
## Valiant             18.1
## Duster 360          14.3
## Merc 240D           24.4
## Merc 230            22.8
## Merc 280            19.2
## Merc 280C           17.8
## Merc 450SE          16.4
## Merc 450SL          17.3
## Merc 450SLC         15.2
## Cadillac Fleetwood  10.4
## Lincoln Continental 10.4
## Chrysler Imperial   14.7
## Fiat 128            32.4
## Honda Civic         30.4
## Toyota Corolla      33.9
## Toyota Corona       21.5
## Dodge Challenger    15.5
## AMC Javelin         15.2
## Camaro Z28          13.3
## Pontiac Firebird    19.2
## Fiat X1-9           27.3
## Porsche 914-2       26.0
## Lotus Europa        30.4
## Ford Pantera L      15.8
## Ferrari Dino        19.7
## Maserati Bora       15.0
## Volvo 142E          21.4
mtcars[c("mpg", "hp")] 
##                      mpg  hp
## Mazda RX4           21.0 110
## Mazda RX4 Wag       21.0 110
## Datsun 710          22.8  93
## Hornet 4 Drive      21.4 110
## Hornet Sportabout   18.7 175
## Valiant             18.1 105
## Duster 360          14.3 245
## Merc 240D           24.4  62
## Merc 230            22.8  95
## Merc 280            19.2 123
## Merc 280C           17.8 123
## Merc 450SE          16.4 180
## Merc 450SL          17.3 180
## Merc 450SLC         15.2 180
## Cadillac Fleetwood  10.4 205
## Lincoln Continental 10.4 215
## Chrysler Imperial   14.7 230
## Fiat 128            32.4  66
## Honda Civic         30.4  52
## Toyota Corolla      33.9  65
## Toyota Corona       21.5  97
## Dodge Challenger    15.5 150
## AMC Javelin         15.2 150
## Camaro Z28          13.3 245
## Pontiac Firebird    19.2 175
## Fiat X1-9           27.3  66
## Porsche 914-2       26.0  91
## Lotus Europa        30.4 113
## Ford Pantera L      15.8 264
## Ferrari Dino        19.7 175
## Maserati Bora       15.0 335
## Volvo 142E          21.4 109
#Índice numérico

mtcars[24,] # Seleciona o registro de número 24 (linha 24 do data frame)
##             mpg cyl disp  hp drat   wt  qsec vs am gear carb
## Camaro Z28 13.3   8  350 245 3.73 3.84 15.41  0  0    3    4
mtcars[c(3, 24),] # Seleciona os registros 3 e 24
##             mpg cyl disp  hp drat   wt  qsec vs am gear carb
## Datsun 710 22.8   4  108  93 3.85 2.32 18.61  1  1    4    1
## Camaro Z28 13.3   8  350 245 3.73 3.84 15.41  0  0    3    4
# Filtrando
mtcars["Camaro Z28",] # Seleciona um carro específico
##             mpg cyl disp  hp drat   wt  qsec vs am gear carb
## Camaro Z28 13.3   8  350 245 3.73 3.84 15.41  0  0    3    4
mtcars[c("Datsun 710", "Camaro Z28"),]  #Seleciona um conjunto de carros
##             mpg cyl disp  hp drat   wt  qsec vs am gear carb
## Datsun 710 22.8   4  108  93 3.85 2.32 18.61  1  1    4    1
## Camaro Z28 13.3   8  350 245 3.73 3.84 15.41  0  0    3    4

3.5.2 Trocando o nome das variáveis de um data frame

#Lista o nome das variáveis de um data frame
names(mtcars)
##  [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
## [11] "carb"
#Troca o nome da variável carb, posição 11 para "carburador"
names(mtcars)[11] <- "carburador"
names(mtcars)[11] 
## [1] "carburador"
#Volta ao nome anterior

names(mtcars)[11] <- "carb"
names(mtcars)[11] 
## [1] "carb"
#Sem utilizar o índice do vetor
names(mtcars)[11] <- "carburador"
colnames(mtcars)[colnames(mtcars)=="carburador"] <- "carb"
names(mtcars)[11] 
## [1] "carb"
#Lista o nome das variáveis de um data frame
names(mtcars)
##  [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
## [11] "carb"

3.6 Manipulação de dados

x<-c(1.6123,2.244,4.109,8.9,16 )
round(x,2)                                # Arredonda os valores de x para n casas decimais
## [1]  1.61  2.24  4.11  8.90 16.00
ceiling(x)                                # retorna o menor valor maior que x (arredonda para cima)
## [1]  2  3  5  9 16
floor(x)                                  # retorna o maior valor menor que x (arredonda para baixo)
## [1]  1  2  4  8 16
as.integer(x)                             # Truncado x real para inteiros (em comparação com rodada)
## [1]  1  2  4  8 16
x%in%y                     # Testa cada elemento x para a adesão em y
## [1] FALSE FALSE FALSE FALSE FALSE
y%in%x                     # Testa cada elemento de y para a adesão em x
## [1] FALSE
all(x%in%y)                #true se x é um subconjunto apropriado de y
## [1] FALSE
all(x)                     # Para um vetor de valores lógicos, eles são tudo verdade?
## Warning in all(x): coerção de argumento de tipo 'double' para lógico
## [1] TRUE
any(x)                     # Para um vector de valores lógicos, é, pelo menos, um verdadeiro?
## Warning in any(x): coerção de argumento de tipo 'double' para lógico
## [1] TRUE

4 Strings

\ ': Aspas simples. Você não precisa escapar aspas simples dentro de uma string entre aspas, por isso também pode usar "" "no exemplo anterior.
\ ":. Aspas Da mesma forma, aspas duplas podem ser usados dentro de um único citado corda, ou seja, '"'.
\ N: nova linha.
\ R: retorno de carro.
\ T: caractere de tabulação.

4.1 Quantificadores

4.1.1 Especificam quantas repetições de um padrão ocorrem.

*: Corresponde a pelo menos 0 vezes.
+: Corresponde a pelo menos 1 vezes.
?: Corresponde, no máximo, 1 vezes.
{N}: corresponde exatamente n vezes.
{N,}: corresponde a pelo menos n vezes.
{N, m}: corresponde entre N e m vezes.

strings <- c("a", "ab", "acb", "accb", "acccb", "accccb")
strings
## [1] "a"      "ab"     "acb"    "accb"   "acccb"  "accccb"
grep("ac*b", strings, value = TRUE)
## [1] "ab"     "acb"    "accb"   "acccb"  "accccb"
grep("ac+b", strings, value = TRUE)
## [1] "acb"    "accb"   "acccb"  "accccb"
grep("ac?b", strings, value = TRUE)
## [1] "ab"  "acb"
grep("ac{2}b", strings, value = TRUE)
## [1] "accb"
grep("ac{2,}b", strings, value = TRUE)
## [1] "accb"   "acccb"  "accccb"
grep("ac{2,3}b", strings, value = TRUE)
## [1] "accb"  "acccb"
stringr::str_extract_all(strings, "ac{2,3}b", simplify = TRUE)
##      [,1]   
## [1,] ""     
## [2,] ""     
## [3,] ""     
## [4,] "accb" 
## [5,] "acccb"
## [6,] ""

4.1.2 Posição de um padrão dentro de uma string

  • ^: corresponde ao início da cadeia.
  • $: corresponde ao fim da cadeia.
  • : corresponde a seqüência vazia em uma ou outra extremidade de uma palavra. Não confundir com ^ $ que marca a extremidade de uma corda.
  • : corresponde a seqüência vazia desde que não seja em uma borda de uma palavra.

Para o último exemplo,  b não é um caractere de escape reconhecido, por isso precisamos de barra dupla que \ b.

strings <- c("abcd", "cdab", "cabd", "c abd")
strings
## [1] "abcd"  "cdab"  "cabd"  "c abd"
grep("ab", strings, value = TRUE)
## [1] "abcd"  "cdab"  "cabd"  "c abd"
grep("^ab", strings, value = TRUE)
## [1] "abcd"
grep("ab$", strings, value = TRUE)
## [1] "cdab"
grep("\\bab", strings, value = TRUE)
## [1] "abcd"  "c abd"

4.2 Classes de Caracteres

* [:digit:] or \d: digits, 0 1 2 3 4 5 6 7 8 9, equivalent to [0-9]. \D: non-digits, equivalent to [^0-9]
* [:lower:]: lower-case letters, equivalent to [a-z]
* [:upper:]: upper-case letters, equivalent to [A-Z]
* [:alpha:]: alphabetic characters, equivalent to [[:lower:][:upper:]] or [A-z]
* [:alnum:]: alphanumeric characters
* [:xdigit:]: hexadecimal digits (base 16) 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f equivalent to [0-9A-Fa-f]
* [:blank:]: blank characters, i.e. space and tab
* [:space:]: space characters: tab, newline, vertical tab, form feed, carriage return space \s space ` ` \S not space
[:punct:]: punctuation characters, # ! " # $ % & ’ ( ) * + , - . / : ; < = > ? @ [  ] ^ _ ` { | } ~
* [:graph:]: # graphical (human readable) characters: equivalent to [[:alnum:][:punct:]]
* [:print:]: printable characters, equivalent to [[:alnum:][:punct:]\\s]
* [:cntrl:]: control characters, like \n or \r, [\x00-\x1F\x7F]

Note:

  • [:…:] has to be used inside square brackets, e.g. [[:digit:]].  itself is a special character that needs escape, e.g. \d. Do not confuse these regular expressions with R escape sequences such as .
strings <- c("^ab", "ab", "abc", "abd", "abe", "ab 12")
strings
## [1] "^ab"   "ab"    "abc"   "abd"   "abe"   "ab 12"
grep("ab.", strings, value = TRUE)
## [1] "abc"   "abd"   "abe"   "ab 12"
grep("ab[c-e]", strings, value = TRUE)
## [1] "abc" "abd" "abe"
grep("ab[^c]", strings, value = TRUE)
## [1] "abd"   "abe"   "ab 12"
grep("^ab", strings, value = TRUE)
## [1] "ab"    "abc"   "abd"   "abe"   "ab 12"
grep("\\^ab", strings, value = TRUE)
## [1] "^ab"
grep("abc|abd", strings, value = TRUE)
## [1] "abc" "abd"
gsub("(ab) 12", "\\1 34", strings)
## [1] "^ab"   "ab"    "abc"   "abd"   "abe"   "ab 34"

5 Funções Estatísticas e Transformações

max()
min()
mean()
median()
sum()
var()                                             # Produz a covariância variância matrix
sd()                                              # desvio padrão
mad()                                             # (Desvio absoluto mediano)
fivenum()                                         #Tukey fivenumbers min, lowerhinge, median, upper hinge, max
table()                                           contagem de frequência, de preferência as entradas são fatores (ainda que trabalha com números inteiros ou até mesmo reais)
cumsum(x)                                         #cumulative sum, etc.
cumprod(x)
cummax(x)
cummin(x)
rev(x)                                            #reverse the order of values in x
cor(x,y,use="pair")                               #correlation matrix
aov(x~y,data=datafile)                            #onde x e y podem ser matrizes
aov.ex1 = aov(DV~IV,data=data.ex1)                
aov.ex2 = aov(DV~IV1*IV21,data=data.ex2)          #Two way analysis of variance
summary(aov.ex1)                                  #Tabela resumo
boxplot(DV~IV,data=data.ex1)                      #boxplot
lm(x~y,data=dataset)                              #regressão linear
t.test(x,g)                                       #Teste t
pairwise.t.test(x,g)
power.anova.test(groups = NULL, n = NULL, between.var = NULL,
                 within.var = NULL, sig.level = 0.05, power = NULL)
power.t.test(n = NULL, delta = NULL, sd = 1, sig.level = 0.05,
             power = NULL, type = c("two.sample", "one.sample", "paired"),
             alternative = c("two.sided", "one.sided"),strict = FALSE)