LISTA DE FUNÇÕES
V0.10200904280229
ΔD (mm)
20
10
0
-10
60
50
D (mm)
40
30
20
10
0
0
1
2
3
4
t (years)
JOÃO GONÇALVES, 2009
Porto
5
6
7
ÍNDICE
FUNÇÕES DE AJUDA ...............................................................................................................................................................................
FUNÇÕES MATEMÁT)CAS, LÓG)CAS E ESTATÍST)CAS BÁS)CAS.........................................................................................................
ESTRUTURAS DE DADOS .......................................................................................................................................................................
SEQUÊNC)AS ...........................................................................................................................................................................................
)NDEXAÇÃO E MAN)PULAÇÃO DE OBJECTOS ......................................................................................................................................
ÁLGEBRA MATR)C)AL ............................................................................................................................................................................
LE)TURA E ESCR)TA DE DADOS ............................................................................................................................................................
MAN)PULAÇÃO DE TEXTO .................................................................................................................................................................
MAN)PULAÇÃO DE DATAS .................................................................................................................................................................
C)CLOS E EXPRESSÕES COND)C)ONA)S .............................................................................................................................................
DEBUGG)NG E CONTROLO DE ERROS ...............................................................................................................................................
GRÁF)COS .............................................................................................................................................................................................
M)SCELÂNEA .......................................................................................................................................................................................
VAR)ÁVE)S PREDEF)N)DAS E )NFORMAÇÕES DO S)STEMA ............................................................................................................
ANÁL)SE ESTATÍST)CA .......................................................................................................................................................................
BOAS PRÁT)CAS DE PROGRAMAÇÃO.................................................................................................................................................
2
R ‐ Lista de funções
FUNÇÕES DE AJUDA
help(topic), ?topic
help.start(topic,
package)
Permite aceder à documentação de ajuda da função ou tópico introduzido. Para procurar informação
sobre operadores ou palavras como if ou outros operadores deve usar‐se: ?’if’, ?’<’.
)nicia a versão offline da documentação do R para a versão corrente.
help.search(pattern,
Permite pesquisar no sistema de ajuda, documentação correspondente ao termo de busca ou à
fields), ??pattern,
expressão regular introduzida pattern .
field??pattern
RSiteSearch(string)
example()
Procura na mailing‐list de ajuda, nos manuais ou páginas de apoio do R por uma ou mais palavras‐
chave ou expressões introduzidas no argumento string, usando para este efeito o motor de busca em
http://search.r‐project.org. A visualização de resultados é feita no browser predefinido. Diversas
opções de busca podem ser definidas para refinar a pesquisa.
Executa todos os exemplos relevantes para o comando ou função que fazem parte da documentação do
sistema.
FUNÇÕES MATEMÁTICAS, LÓGICAS E ESTATÍSTICAS BÁSICAS
<
assign(x, value)
get(x)
Operador de atribuição. Permite atribuir um valor ao nome de uma variável.
Atribui um determinado valor value ao nome de uma variável x num dado ambiente. O
comportamento desta função é idêntico ao operador de atribuição.
Procura e devolve o valor de um objecto com o nome definido. Exemplos:
assign("var",1E-6)
print(var)
# [1] 1e-06
get("var")+log(12.25)
# [1] 2.505527
+, , *, /
>, <, >=, <=, ==
any(…)
all(…)
&, &&, |, ||, !=, !
%/%, ^, %%, sqrt(),
log(x, base), log10(),
exp(), abs()
cos(), sin(), tan(), acos()
asin(), atan()
Operações matemáticas: soma, subtracção, multiplicação e divisão numérica.
Operadores de comparação: maior, menor, maior ou igual, menor ou igual, igual não idêntico .
Dado um vector contendo elementos lógicos existe algum com valor verdadeiro TRUE ?
Dado um vector contendo elementos lógicos todos eles possuem valor verdadeiro?
Operadores lógicos de comparação: E vectorizável/não vectorizável , OU vectorizável/não
vectorizável , NÃO )GUAL, NÃO.
Operadores matemáticos: divisão inteira, potência, módulo, raiz quadrada, logaritmo natural por
defeito , logaritmo de base , e^x, valor absoluto.
Funções trigonométricas: co‐seno, seno, tangente, arco‐coseno, arco‐seno, arco‐tangente
Funções de arredondamento numérico: maior inteiro, menor inteiro, truncagem/remoção da
floor(), ceiling(), trunc(),
fracção decimal, arredondamento para o número de casas decimais definido, arredondamento
round(), signif()
para o número de algarismos significativos definido.
min(), max()
pmin(),pmax()
range(x)
rank(x)
sum(x)
diff(x)
prod(x)
cummin(x), cummax(x)
cumsum(x)
cumprod(x)
3
Devolve o mínimo/máximo dos argumentos introduzidos.
Devolve o mínimo/máximo paralelo dos argumentos introduzidos.
Devolve a amplitude de x.
Devolve a posição/rank relativo de cada elemento.
Devolve a soma de todos os elementos.
Calcula a diferença espaçada e iterada entre os elementos do vector.
Calcula o produto de todos os elementos em argumento
Calcula o mínimo/máximo cumulativo.
Calcula o somatório cumulativo.
Calcula o produto cumulativo.
R ‐ Lista de funções
mean(x)
weighted.mean(x, w)
median(x)
quantile(x, probs)
sd(x)
var(x)
cov(x)
cor(x, y, method)
cor.test(x, y, alternative,
method, conf.level) /
cor.test(formula, data,
subset)
Calcula a média de x.
Calcula a média ponderada de x pelos pesos definidos no argumento w.
Calcula a mediana de x.
Calcula os quantis que correspondem às probabilidades probs definidas c 0, 0.25, 0.50, 0.75, 1)
por defeito
Calcula o desvio‐padrão de x, caso o argumento seja um data frame devolve o desvio‐padrão por
coluna.
Calcula a matriz variância de x.
Calcula a matriz de co‐variância.
Calcula a matriz de correlação se x é um data frame ou matriz ou a correlação entre x e y se y é
não nulo . O argumento method permite definir qual o coeficiente de correlação a ser calculado. As
opções disponíveis são: c(“pearson”,“kendall”,“spearman”). Por defeito é usado o coeficiente de
correlação de Pearson.
Testa a associação/correlação entre duas variáveis aleatórias, permitindo seleccionar qual o qual
a hipótese alternativa alternative=c("two.sided", "less", "greater") , o indicador/coeficiente
method=c("pearson", "kendall", "spearman") e o nível de confiança do teste conf.level=0.95; por
defeito . Exemplo:
data(iris)
# Calcula a matriz de correlação com os coeficientes de Pearson
cor(iris[,1:4])
ESTRUTURAS DE DADOS
vector(mode,
length)
matrix(data,
nrow, ncol,
byrow,
dimnames)
array(data, dim,
dimnames)
data.frame (...,
row.names,
check.rows,
check.names,
stringsAsFactors
list()
4
Cria um vector com o modo e o comprimento especificado. Os modos disponíveis são: "logical", "integer",
"numeric", "complex", "character" e "raw".
v<-vector(mode="integer", length=10)
v<-1:10
# [1] 1 2 3 4 5 6 7 8 9 10
Cria uma matriz a partir de um conjunto de valores. Qualquer matriz só pode conter apenas um tipo de
valores, qualquer tentativa de armazenar mais do que um tipo despoleta uma coerção de tipos. Esta função
permite definir o conjunto de dados a usar data , o n.º de linhas nrow e colunas ncol e os nomes das
linhas e colunas através de uma lista dimnames . Exemplos:
# Cria uma matriz identidade 3×3
x<-matrix(c(1,0,0,0,1,0,0,0,1),nrow=3)
# Cria uma matriz com 2 linhas preenchendo-a por linha
vector<-c(1,2,3,4,4,3,2,1)
v<-matrix(vector,byrow=TRUE,nrow=2)
Cria um array. Os dados especificados no argumento data são reciclados. Exemplo:
# Cria um array bidimensional 10×10 preenchido por zeros
array(0,c(10,10))
# Cria um array 4×2×3 preenchido por letras
x<-letters[1:24]
dim(x)<-c(4,2,3) # Define as dimensões do array
Função usada para criar data frames a partir de uma colecção de variáveis com propriedades similares. Um
data frame é bastante similar a uma matriz, contudo permite armazenar dados de diferentes tipos e as
colunas possuem sempre um nome associado. Os elementos com menor dimensão são reciclados. Exemplo:
sample.df<-data.frame(1:10,runif(20),runif(20))
sample.df # O primeiro elemento é reciclado uma vez
sample.df<-data.frame(compr=1:10,idade=gl(2,5,labels=c("pupa","juvenil")))
sample.df # Note-se os diferentes tipos utilizados: V1 - inteiros e V2 - factores
Produz uma lista a partir de um conjunto de argumentos com ou sem nome. Exemplo:
lista<-list(a=c(1,2),b="hi",c=3i)
# Output:
# $a
# [1] 1 2
# $b
R ‐ Lista de funções
# [1] "hi"
# $c
# [1] 0+3i
factor()
ls()
apropos(what)
describe()
str()
summary()
attach()
detach()
Usa‐se para converter um vector para factores/categorias/classes. A função levels() permite visualizar os
níveis existentes.
Devolve um vector de texto com os nomes de todos os objectos num ambiente definido. Quando a função é
invocada sem argumentos a partir da linha de comandos mostra quais os datasets e funções criadas pelo
utilizador. Quando chamada dentro de uma função, sem argumentos, mostra os nomes das variáveis locais
definidas no escopo dessa função.
Devolve um vector de texto com o nome de todos os objectos na lista de busca introduzida termos ou
expressões regulares no argumento what
Método genérico que devolve um conjunto de informações acerca do tipo de dados contido na variável e
um sumário estatístico descritivo.
Mostra a estrutura interna e diagnóstico do objecto especificado. A variante ls.str() mostra todos os
objectos no search path e lista a sua estrutura.
Função genérica que mostra resultados sumários de diferentes tipos/classes de objectos dependendo da
função usada.
A base de dados considerada é associada ao caminho de trabalho do R, significando que esta é pesquisada
quando uma variável é avaliada. )sto significa que os objectos podem ser acedidos usando simplesmente os
seus nomes.
A função detach() remove o vínculo à base de dados. Exemplos:
sample.data<-data.frame(1:10,runif(10),runif(10))
colnames(sample.data)<-Cs(variavel_01,variavel_02,variavel_03)
attach(sample.data)
print(variavel_01) # Posso usar directamente as colunas/variáveis do data frame
sample.data
detach(sample.data) # Remove o vínculo do data frame sample.data
detach(package:lattice) # Remove o pacote lattice da sessão
methods()
Permite ver ou atribuir a classe de um determinado objecto.
Devolve uma cópia do objecto em argumento sem o atributo de classe.
attr(x,which)
Permite ver ou especificar um atributo which de um dado objecto x . Exemplo:
class()
unclass()
attributes()
rm()/ remove()
Lista todos os métodos disponíveis para uma função genérica do tipo S ou alternativamente, todos os
métodos de uma certa classe.
data(iris)
# Especifica o atributo ncols.data como o número de colunas do data frame
attr(iris, "ncols.data") <- ncol(iris)
Permite ver ou estabelecer a lista de atributos de um dado objecto.
Remove os objectos especificados de um certo ambiente. Exemplo:
rm(list=ls(all=TRUE)) # Remove todos os objectos da sessão
dim()
length()
nrow()/NROW()
ncol()/NCOL()
names()
dimnames()
rownames()
colnames()
Devolve ou especifica as dimensões de um objecto.
Devolve ou atribui as dimensões a um vector, lista ou factores.
Número de linhas
Número de colunas
Exibe ou especifica os nomes de um objecto geralmente do tipo vector .
Lista ou especifica os nomes de um determinado objecto.
Lista ou atribui os nomes dos casos/linhas a um determinado objecto.
Lista ou atribui os nomes das colunas/variáveis de um objecto.
Combina/concatena os valores para gerar um vector ou lista com um tipo comum.
c()
expand.grid()
5
Cria um data frame com todas as combinações possíveis dos vectores/factores introduzidos. Exemplo:
expand.grid(cor=as.factor(c("Verde", "Amarelo")), dim=10:15)
# Output
cor
dim
1
Verde
10
2 Amarelo
10
R ‐ Lista de funções
3
4
…
rbind(), cbind()
sample(x, size,
replace, prob)
Verde
Amarelo
11
11
A partir de uma sequência de vectores, matrizes ou data frames combina‐os/junta‐os por linha ou coluna
respectivamente. Estes métodos são genéricos para outras classes.
Permite extrair uma amostra de x com o tamanho especificado no argumento size com ou sem substituição
argumento replace . Esta função mistura de forma sequencial e aleatória o conteúdo do vector x mantendo
os valores inalterados. A ordem dos elementos é diferente de cada vez que a função sample é chamada,
embora os mesmos elementos sejam aleatorizados em cada caso. O argumento replace permite definir se a
amostragem tem TRUE ou não FALSE substituição, sendo que esta última constitui a base para realizar
bootstrap. O argumento prob permite definir a probabilidade de cada elemento do vector de entrada ser
amostrado. Exemplos:
# Amostragem sem substituição de 10 elementos de x
x<-1:100
sample(x, 10, replace=FALSE)
# [1] 82 66 73 23 9 59 3 63 38 1
# Amostragem com substituição de 10 elementos de x
sample(x, 10, replace=TRUE)
# [1] 97 70 91 68 85 31 34 31 21 33
x.prob<-runif(100)
sample(x, 10, replace=FALSE, prob=x.prob)
scale(x, center,
scale)
Esta função genérica permite estandardizar e/ou centrar as colunas de uma matriz numérica, fazendo com
que a média de cada coluna seja igual a e o desvio‐padrão igual a .
SEQUÊNCIAS
Cria sequências regulares. Para sequências numéricas este operador equivale a gerar uma sequência do
tipo: seq(from,to) com incremento de ou ‐ . Permite gerar sequências por cruzamento de factores para
factores a, b com a mesma dimensão . Exemplos:
from:to
a:b
Com números from, to
x<-1:10 # Output: [1] 1 2 3 4 5 6 7 8 9 10
x<-10:-10 # Output: [1] 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
x<-pi:10 # Output: 3.141593 4.141593 5.141593 6.141593 7.141593 8.141593 9.141593
# Com factores a, b
x<-gl(2,3)
y<-gl(3,2)
z<-x:y
# Output:
# [1] 1:1 1:1 1:2 2:2 2:3 2:3
# Levels: 1:1 1:2 1:3 2:1 2:2 2:3
rep(x, times,
each)
Permite replicar x, times vezes, sendo que cada elemento de x pode ser replicado each vezes. Os valores são
reciclados. Exemplos:
seq(from, to, by)
Gera uma sequência regular de from até to por incrementos do argumento definido por by.
gl(n, k, length,
labels)
6
rep(x=c(1,2,3),times=2)
# Output: [1] 1 2 3 1 2 3
rep(x=c(1,2,3),times=2,each=3)
# Output: [1] 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3
seq(from = 1, to = 5, length = 4)
# [1] 1.000000 2.333333 3.666667 5.000000
seq(length = 10, from = -2, by = 0.2)
# [1] -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 ... -0.2
Produz factores por combinação dos níveis definidos. O argumento n controla o número inteiro de níveis
e k o n.º de réplicas. Por defeito são gerados n*k factores podendo este número ser definido pelo
argumento length. O argumento labels permite incluir os códigos/legendas de cada nível.
# Produz duas réplicas de cada um dos níveis 1, 2 e 3
x.f <- gl(3,2)
R ‐ Lista de funções
# Output:
# [1] 1 1 2 2 3 3
# Levels: 1 2 3
# Produz três réplicas de cada um dos níveis, codificados por: Pupa, Juvenil, Adulto
x.f <- gl(3,3,labels=c("Pupa","Juvenil","Adulto"))
# Output:
# [1] Pupa Pupa Pupa Juvenil Juvenil Juvenil Adulto Adulto Adulto
# Levels: Pupa Juvenil Adulto
INDEXAÇÃO E MANIPULAÇÃO DE OBJECTOS
Indexação de vectores
x[n]
x[n]
x[1:n]
x[(1:n)]
x[c(1,4,2)]
x["id"]
x[x > 3]
x[x > 3 & x < 5]
x[x %in% c("quercus",
"acer","laurus")]
Extrai/selecciona o n‐ésimo elemento do vector x.
Selecciona todos os elementos excepto o n‐ésimo.
Selecciona os primeiros n elementos.
Selecciona todos os elementos de n+ até ao fim.
Extrai os elementos especificados, neste caso: , e .
Extrai o elemento id através do nome.
Selecciona todos os elementos de x cujo valor é superior a .
Selecciona todos os elementos de x cujo valor é superior a e inferior a .
Selecciona todos os elementos de x com correspondência ao conjunto definido.
Indexação de matrizes
x[i, j ]
x[i, ]
x[, j]
x[, 1:5]
x[, c(1,2,10)]
x[,1]
x[, c(“Var1”, “Var2”)]
x[n,1,drop=”False”]
x[1,n,drop=”False”]
Indexação de data frames
x[["Var1"]]
x$Var1
Indexação de listas
x[n]
x[["Var1"]]
x$Var1
which()
Selecciona a i‐ésima linha e a j‐ésima coluna de x.
Selecciona a linha i.
Selecciona a coluna j.
Selecciona as colunas a .
Selecciona as colunas , e .
Selecciona todas as colunas excepto a ª.
Selecciona as colunas/variáveis Var e Var .
Quando a selecção de um objecto tipo matriz ou data frame tem alguma dimensão igual a , o
argumento drop=”FALSE” permite manter o formato de matriz em vez de ser automaticamente
convertida para vector para n> , n.º de colunas ou linhas .
Nota: aplicam‐se todas as regras de indexação ligadas às matrizes mais as seguintes
Selecciona a coluna/variável Var .
Selecciona a variável Var do data frame.
Extrai o elemento n da lista.
Selecciona a coluna/variável Var .
Selecciona a variável Var do data frame.
Devolve os índices dos elementos que verificam a condição introduzida, permitindo índices do
tipo array. Exemplo:
data(iris)
iris[which(iris$Sepal.Width>4),] # Devolve os elementos com sépalas > 4
which.max()
which.min()
subset()
cut()
cut.Date()
split()
7
Devolve o índice/localização do máximo/mínimo de um vector numérico.
Devolve um subconjunto de um vector, matriz ou data frame que correspondem a uma dada
condição similar ao uso de SELECT e W(ERE em SQL .
Divide o vector introduzido em intervalos e codifica os valores dentro do intervalo a que estes
pertencem. A versão cut.Date() permite fazer intervalos de dados em formato de data.
A partir do vector introduzido permite criar uma lista com grupos definidos pelo parâmetro f.
Permite criar grupos equitativos através da reciclagem do parâmetro f desde que este seja um
R ‐ Lista de funções
múltiplo do comprimento do vector de entrada.
Permite fazer uma tabela pivot/contingência com contagens de cada combinação de factores.
Para este tipo de tarefas a função tabulate() também pode ser empregue.
table(),
tabulate()
ftable()
s <- Cs(f,f,m,m,m,m,m,m,m,f,f,f,m,m,m,f,f, m,m,f)
s <- as.factor(s)
i <- gl(2,10,labels=c("[35-45[", "[45-60["))
# Tabulação cruzada com contagem
tab.c <- table(s,i)
#
i
# s
[35-45[ [45-60[
#
f
3
5
#
m
7
5
Cria tabelas pivot/contingência planas com maior flexibilidade. Permite definir variáveis de
coluna e linha para construir as tabulações. Possibilita a conversão para data frame.
Gera uma tabela em que cada entrada da matriz é uma fracção da tabela marginal margin=1,
por linha; margin=2, por coluna
s <- Cs(f,f,m,m,m,m,m,m,m,f,f,f,m,m,m,f,f, m,m,f)
s <- as.factor(s)
i <- gl(2,10,labels=c("[35-45[", "[45-60["))
prop.table(x, margin)
order()
# Tabulação com frequências totais
tab.c <- table(s,i)
prop.table(tab.c)
#
i
# s
[35-45[ [45-60[
#
f
0.15
0.25
#
m
0.35
0.25
Devolve uma permutação do índice dos elementos ordenando‐os segundo o parâmetro
decreasing. Através desta função é possível ordenar segundo vários elementos
simultaneamente. Para ordenar um data frame ou matriz pode usar‐se o seguinte exemplo:
data(iris)
iris[order(iris$Sepal.Length, decreasing=TRUE), ]
rev()
unique()
apply()
lapply(), sapply()
by(data, INDICES, FUN)
merge()
aggregate(x, by, FUN)
stack(x, select), unstack(x,
form)
union(), intersect(),
setdiff(), setequal(),
is.element()
8
)nverte a ordem do argumento.
Devolve um vector, array ou data frame com os valores duplicados removidos.
Aplica a função definida pelo utilizador às margens de um objecto tipo matriz. O parâmetro
MARGIN define 1 para linhas e 2 para colunas e c(1,2) para ambos.
lapply() aplica a função definida aos elementos de uma lista X devolvendo uma lista com as
mesmas dimensões. A função sapply() é uma versão mais user‐friendly devolvendo uma matriz
ou vector com os resultados da função aplicada.
Aplica uma função a uma base de dados data por grupos definidos pelo argumento INDICES.
Permite jazer junções de data frames através de nomes de linhas, colunas ou campos comuns.
Existem diversas possibilidades de determinar o tipo de join com semelhanças aos SGBDs.
Divide os dados em subconjuntos, definidos pelo argumento by lista com a mesma dimensão
das variáveis em x , calcula um sumário estatístico para cada um e devolve o resultado num
formato conveniente. O funcionamento é similar a GROUP BY em SQL. Exemplo:
data(iris)
aggregate(x=iris[,1:4],by=list(Espécie=iris$Species),FUN=mean) # Calcula a
média de cada atributo para cada espécie de iris (setosa,versicolor e
virginica)
Empilha múltiplos vectores de um data frame ou lista para uma única coluna acompanhada por
um factor que indica a proveniência do valor. Usando unstack anula/inverte esta operação.
Realiza operações de conjuntos sobre dois vectores. As operações correspondem à união,
intersecção, diferença, igualdade e pertença. Exemplos:
x<-1:10
y<-10:19
R ‐ Lista de funções
union(x,y)
# [1] 1 2 3 4 5 6
intersect(x,y)
# [1] 10
setdiff(x,y)
# [1] 1 2 3 4 5 6 7 8 9
7
8
9 10 11 12 13 14 15 16 17 18 19
Remove os valores em falta, attr(x,“na.action”) permite ver o índice dos casos removidos.
Devolve uma mensagem de erro caso exista algum valor em falta.
)ntroduz NA nos valores em falta.
na.omit()
na.fail()
na.exclude()
ÁLGEBRA MATRICIAL
diag()
Gera uma matriz diagonal ou substitui a diagonal de uma matriz. Exemplos:
x<-matrix(1:100,10,10)
diag(x) # Mostra a diagonal da matriz x
# Output:
# [1] 1 12 23 34 45 56 67 78 89 100
diag(x)<-rnorm(10) # Substitui a diagonal da matriz x
Transpõe a matriz, data frame ou vector.
t()
solve()
eigen()
rowSums(),
colSums()
rowMeans(),
colMeans()
Esta função permite resolver um sistema de equações a %*% = b, onde b pode ser um vector ou uma
matriz. Exemplo:
coefs<-matrix(c(-4,0.3,54.3,-4),2,2,byrow=TRUE)
consts<-c(12.3,45)
solve(coefs,consts)
# Output:
# [1] 216.2069
2923.7586
Calcula os auto‐valores e os auto‐vectores de uma dada matriz.
Calcula somatórios de linha ou coluna respectivamente.
Calcula médias por linha ou coluna respectivamente.
LEITURA E ESCRITA DE DADOS
source(file)
data()
load(file)
read.table(file,
header, sep,
row.names,
col.names),
read.csv(),
read.delim()
data.entry(),
dataentry()
scan(file, what,
nmax, n, sep, quote,
dec, skip, nlines)
sink(file)
)nterpreta e avalia o código do ficheiro, URL ou ligação file no ambiente seleccionado.
Permite ler ou listar datasets que fazem parte integrante do R ou de determinados pacotes.
Relê dados/objectos previamente salvos através da função save() definidos por file no formato binário
do R.
Lê o ficheiro e cria um data frame a partir deste. Os casos correspondem a linhas e as variáveis aos
campos presentes no ficheiro. Permite indicar qual o separador de valores sep , e a presença de
cabeçalho header , nomes dos casos row.names e das variáveis col.names .
A função read.csv(), read.delim() tem valores por defeito ajustados para ler ficheiros ou ligações em
formato csv separados por vírgula “,” ou txt separados por tabulações “\t” .
Exibe uma interface do tipo folha de cálculo para a entrada e edição de dados.
Lê e insere dados a partir de um ficheiro ou da consola. Tem maior flexibilidade, rapidez e consome
menos recursos.
Envia o output bruto da consola para um ficheiro/ligação. Exemplo:
data(iris)
9
R ‐ Lista de funções
sink(file=”C:\\temp\\output.txt”)
print(summary(iris))
sink() # termina o envio para o ficheiro
save()
Concatena e imprime os objectos. Realiza menos conversões de tipo do que a função print() e útil para
usar em funções definidas pelo utilizar. O output não é escapado, ou seja, é feita a interpretação deste.
Permite imprimir para ficheiro/ligação a menos que sink() esteja activo.
write.table(x,file,
header, sep,
row.names,
col.names),
write.csv()
Grava o objecto x para um ficheiro ou ligação após a sua conversão para data frame. A variante
write.csv() grava ficheiros de dados separados por vírgulas.
cat(…, file)
Grava uma representação externa de um objecto R no ficheiro definido. save.image() permite salvar o
workspace/todos os objectos da sessão.
MANIPULAÇÃO DE TEXTO
Cs()
paste()
substring(),
substr()
strsplit()
Converte e concatena um conjunto de nomes sem aspas para um vector de texto.
Concatena os valores após convertê‐los para texto. Permite definir um separador de concatenação pelo
parâmetro sep e colapsar todos os elementos para um elemento único através do parâmetro
collapse="string".
Extrai ou substitui substrings no vector de texto. Exemplo:
# Extrai substring
substring("Hello World!", 1, 5) # Hello
Divide os elementos de um vector de texto em substrings de acordo com uma string de separação definida
pelo parâmetro split.
Procura no vector x correspondências com o padrão definido pattern e devolve o índice destas. Exemplos:
grep(pattern, x)
gsub(pattern,
replacement, x)
match()
%in%
pmatch(),
charmatch()
print()
sprintf()
tolower(),
toupper()
abbreviate()
10
# Encontra todas as strings com nome exactamente igual a “verde”
x<-Cs(amarelo,azul,preto,azul,verde,laranja,verde)
grep("verde",x)
# Devolve todos os nomes de ficheiros com extensão .asc (ASCII)
x<-c("file00.asc","file01.txt","file02.txt","file03.asc")
grep("\\.asc",x)
Executa uma substituição, definida por replacement, quando é encontrada correspondência com o padrão
definido pattern .
Devolve as posições/índices do segundo vector onde são encontradas correspondências com o primeiro
vector.
Operador binário de comparação mais intuitivo do que a função match().
Procura correspondências parciais no segundo vector a partir do primeiro. Devolve os índices/posições no
segundo vector.
Função genérica que imprime o argumento da função. O output é escapado, o número de algarismos
significativos digits e o quote de strings é opcional.
)mprime texto com um formato definido pelo utilizador. Bastante flexível para imprimir texto e dados
numéricos juntamente.
Converte uma string para minúsculas e maiúsculas respectivamente.
Abrevia uma determinada string para um conjunto mínimo de caracteres definidos por minlength para
que estes permaneçam únicos. Permite várias opções de formato.
R ‐ Lista de funções
MANIPULAÇÃO DE DATAS
Permite converter uma string para um qualquer formato de data especificado pelo utilizador. Os
parâmetros para a definição de datas são os seguintes:
as.Date()
%a, %A ‐ Nome do dia da semana abreviado e completo
%b, %B ‐ Nome do mês abreviado e completo.
%d ‐ Dia do mês
– .
%H ‐ (oras
– .
%I ‐ (oras
– .
%j ‐ Dia do ano
–
.
%m ‐ Mês
– .
%M ‐ Minutos
– .
%p ‐ )ndicador AM/PM.
%S ‐ Segundos como número decimal
– .
%U ‐ Número da semana
– , sendo que o primeiro Domingo é o dia da semana .
%w ‐ Dia da semana – , Domingo é considerado .
%W ‐ Semana
– , sendo que a primeira segunda‐feira é o dia da semana .
%y ‐ Ano sem indicação do século
– . Nota: pode gerar alguns problemas de compatibilidade.
%Y ‐ Ano completo com indicação do século.
%z ‐ Offset a partir de Greenwich; ‐
é considerado horas a oeste de Greenwich.
%Z ‐ Fuso horário como texto vazio se não estiver disponível .
Exemplos:
myDate<-as.Date('10-Jan-1993',format='%d-%b-%Y')
# [1] "1993-01-10"
class(myDate)
# [1] "Date"
# Data expressa localmente
format(Sys.Date(), "%A %d de %B de %Y")
[1] "sábado 25 de Abril de 2009"
CICLOS E EXPRESSÕES CONDICIONAIS
Permite a construções de blocos de execução controlados por estruturas condicionais. Exemplos:
# Determinar a classe etária a que pertence um determinado valor
x <- 29
if(cond_1){ … },
else if(cond_2) { … },
else{ … }
ifelse(test, yes, no)
switch()
11
if (x < 18){
y <- "CLASSE 1"
print(y)
} else if (x < 35){
y <- "CLASSE 2"
print(y)
} else{
y <- "CLASSE 3"
print(y)
}
# Output:
# [1] "CLASSE 2"
Atribui ou executa uma expressão diferente caso a expressão test seja verdadeira ou falsa. Caso seja
verdadeira yes verifica‐se, caso contrário no. Exemplos:
sqrt(ifelse(x >= 0, x, NA)) # Não produz qualquer aviso
# [1] 2.449490 2.236068 2.000000 1.732051 1.414214 1.000000 0.00000 NA NA NA NA
x <- sample(-2:2,5)
ifelse(x>0,"Maior","Menor") # [1] "Maior" "Menor" "Menor" "Maior" "Menor"
Avalia uma expressão seleccionando‐a de acordo com elementos pasados em … . Alternativa para
blocos if, else if, else. Exemplo:
R ‐ Lista de funções
centre <- function(x, type) {
switch(type,
mean = mean(x),
median = median(x),
trimmed = mean(x, trim = .1))
}
x<-runif(100)
centre(x, type="trimmed") # [1] 0.4351297
Cria um ciclo cujo elemento de contagem ou outro consoante o tipo é dado por i. Exemplos:
for(i in LETTERS) print(I, quote=FALSE)
# A, B, C, …
for(i in 1:10)
for(i in var)
for(i
# [1]
# [1]
# [1]
# [1]
# [1]
in 1:5) print(1:i)
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
for(n in c(2,5,10,20,50)) {
x <- stats::rnorm(n)
cat(n,":", sum(x^2),"\n")
}
# 2 : 2.190857
# 5 : 3.837692
# 10 : 15.03589
# 20 : 18.00835
# 50 : 57.27886
Cria um ciclo que apenas pode ser terminado por uma declaração break. Exemplo:
repeat
i<-1
repeat{
cat(paste("N =", i, "\n"))
i<-i+1
if(i>10) break # interrompe a execução do ciclo
}
Enquanto a condição definida não for atingida ou uma declaração break o ciclo continua em execução.
Exemplos:
while()
next
break
x<-1
y<-runif(4)
while(x<=length(y)){
print(y[1:x])
x<-x+1
}
# [1] 0.3702356
# [1] 0.37023563 0.02636789
# [1] 0.37023563 0.02636789 0.36209310
# [1] 0.37023563 0.02636789 0.36209310 0.84610871
Permite saltar o passo actual do ciclo, geralmente associado a um bloco condicional.
Termina normal ou anormalmente o ciclo em execução através, geralmente, de uma dada condição.
DEBUGGING E CONTROLO DE ERROS
debug()
recover()
traceback()
try()
12
Possibilita a introdução de uma marca de debugging numa determinada função. Com esta marca a
execução normal da função é suspensa e cada declaração da função é avaliada individualmente
Esta função possibilita a exploração das chamadas de funções activas. Pode ser activada como
opção de erro com: option(error=recover).
Por defeito a função imprime a sequência de chamadas que gerou o último erro não capturado.
Útil quando os erros não têm identificação.
A função permite lidar com recuperação de erros devido a expressões que poderão falhar e.g.:
inclusão de stop() numa avaliação condicional . Versão simplificada da função tryCatch().
R ‐ Lista de funções
Permite lidar com situações menos usuais incluindo erros e avisos.
tryCatch()
Termina a execução da expressão actual e executa uma mensagem de erro.
stop()
stopifnot(…)
message(…)
supressMessages(expr)
Se alguma das expressões introduzidas em … for não verdadeira então a função stop() é chamada,
produzindo um erro que indica qual a primeira expressão não verdadeira.
Gera uma mensagem de diagnóstico a partir dos argumentos da função.
Avalia a expressão em argumento suprimindo todas as mensagens de diagnóstico simples.
Gera uma mensagem de aviso a partir do argumento da função e da expressão a partir da qual a
função foi chamada opcional .
suppressWarnings(expr) Avalia a expressão em argumento suprimindo todas as mensagens de aviso.
warning(..., call.)
GRÁFICOS
Funções de controlo sobre dispositivos gráficos
dev.new()
dev.set()
dev.cur()
dev.list()
dev.next()
dev.prev()
dev.off()
windows()
win.metafile(),
pdf(),
postscript(),
jpeg(), bmp(),
png(), tiff()
Abre um novo dispositivo e devolve o valor de retorno associado.
Estabelece qual o dispositivo activo.
Devolve o valor de retorno do dispositivo activo.
Lista todos os dispositivos.
Devolve o valor do próximo dispositivo activável.
Devolve o valor do anterior dispositivo activável.
Fecha o dispositivo definido por defeito o dispositivo activo .
Abre um novo dispositivo com as características definidas.
Abre dispositivos gráficos para diversos formatos de output. As opções referem‐se aos formatos
Metaficheiro do Windows wmf , Portable Document Format pdf , Postscript ps , Joint Photographic
Experts Group jpg , Bitmap bmp , Portable Network Graphics png , Tagged )mage File tif .
Funções de controlo sobre screens
split.screen()
screen()
erase.screen()
close.screen()
A função split.screen define um número de regiões dentro de um dispositivo gráfico que podem, até certo
ponto, comportarem‐se como diferentes dispositivos gráficos. Esta função é bastante útil para fazer
diferentes gráficos num único dispositivo. Também possibilita a subdivisão dos diferentes screens para
permitir arranjos bastante complexos e personalizados.
Selecciona o screen a utilizar. Quando alguma função de geração de gráficos é chamada esse screen é usado
para exibir a figura. A numeração dos diferentes screens é feita a partir do canto superior esquerda no
sentido dos ponteiros do relógio.
Usa‐se para eliminar o conteúdo do screen, esta acção é feita preenchendo‐o com a cor de fundo
especificada, caso esta seja transparente parecerá que a acção de erase.screen não foi efectuada. Para
obviar este efeito pode usar‐se par(bg=”white”) para atribuir uma cor opaca branco ao fundo.
Remove o screen especificado.
Exemplos:
# Cria um novo dispositivo gráfico com 2×2 screens com fundo branco
if(dev.cur()!=1) dev.off()
split.screen(figs=c(2,2)); par(bg="white")
# Usa os diferentes screens criados para exibir gráficos
screen(1) # Utiliza o screen 1
plot(ECDF<-ecdf(rnorm(100)))
screen(2) # Utiliza o screen 2
plot(cars); abline(coef(line(cars)))
screen(3) # Utiliza o screen 3
data(iris)
plot(iris[,1],iris[,3]); title("Iris I")
screen(4) # Utiliza o screen 4
plot(iris[,1],iris[,4]); lines(lowess(iris[,1],iris[,4], f=.2), col = "blue")
title("Iris II")
# Elimina o conteúdo screen 1 e coloca um novo gráfico
13
R ‐ Lista de funções
erase.screen(1)
screen(1)
plot(1:100)
Funções embutidas para a geração de gráficos
Função genérica que permite desenhar gráficos X‐Y. Por defeito é construído um gráfico de dispersão X‐Y,
embora diversos objectos possuam métodos específicos para a geração de gráficos, tais como: data.frame,
density, lm, ecdf, etc. Para consultar/definir os parâmetros deve ser usada a função par(). Exemplos:
# Distribuição de 100 pontos gerados aleatoriamente com distribuição normal
plot(rnorm(100))
# Função sen(x)
plot(sin,-pi,2*pi)
plot(x, y, …)
# Função linear do tipo y=ax+b no domínio [0,100]
x<-seq(0,100,0.5); y<-2*x+10
plot(x,y,type=”l)
# O mesmo exemplo
lin<-function(x)return(2*x+10)
plot(lin,0,100)
# Função empírica de distribuição acumulada
plot(ecdf(rnorm(500)),verticals=TRUE,col.points='blue',col.hor='red',col.vert='bisque
')
# Data frame
data(iris)
clrs<-Cs(orange,grey,blue)
plot(iris,pch=1:3,col=clrs)
# Utilizando fórmulas
data(iris); clrs<-Cs(orange,grey,blue)
plot(Petal.Length~Petal.Width,data=iris,pch=1:3,col=clrs)
Permite construir o histograma dos dados introduzidos no argumento x. Se plot=TRUE então é produzido
um gráfico do histograma por plot.histogram() antes de ser devolvido o resultado da função. Exemplos:
hist(x, breaks,
freq, plot)
boxplot(x, …) /
boxplot(formula
, data, …, subset)
op<-par(mfrow=c(2,1))
hist(islands)
hist(islands,col="gray",labels=TRUE) # O mesmo gráfico com barras a cinza e legendas
# Outro exemplo
y <- rnorm(500)
hist(y,axes=TRUE,border="grey",col="light grey")
box(col="grey")
rug(y,ticksize=0.03)
Produz a caixa de bigodes dos valores introduzidos em x podendo estes estar agrupados . Exemplos:
# Caixa de bigodes de todas as colunas
data(iris)
boxplot(iris)
# Caixa de bigodes da coluna Sepal.Length por cada uma das espécies de iris
boxplot(Sepal.Length~Species,data=iris)
MISCELÂNEA
#
q() / quit()
setwd(), getwd()
list.files / dir(path,
recursive
pattern)
INSTALL
14
Permite introduzir comentários de linha, ou seja, tudo o que for colocado à direita deste símbolo até
ao final da linha será ignorado pelo R.
Sai da consola terminando a sessão actual do R, permitindo guardá‐la.
Estabelece ou devolve o directório de trabalho actual do R.
Lista todos os ficheiros presentes no directório de trabalho por defeito , ou no directório definido
pelo argumento path. Permite leitura recursiva recursive e correspondência por expressões
regulares pattern .
Permite instalar ou remover pacotes/bibliotecas.
R ‐ Lista de funções
REMOVE
library()
require()
is(object, class )
is.numeric()
is.character()
is.na()
as()
as.numeric()
as.character()
as.matrix()
as.data.frame()
Carrega um determinado pacote/biblioteca especificada.
Verifica se um determinado objecto object tem a classe definida no segundo argumento class2 . O
output destas funções é TRUE ou FALSE caso o objecto testado seja ou não do tipo especificado.
Verifica se o objecto x é do tipo numérico.
Verifica se o objecto x é do tipo texto.
Verifica se o objecto x é, ou se posui no caso de ser uma matriz ou data frame um valor em falta
NA .
Função genérica usada para converter o objecto para um certo tipo/classe.
Passa o objecto para o tipo numérico
Passa o objecto para o tipo texto.
Converte para o tipo matriz.
Converte para o tipo data frame.
Permite passar um número variável de argumentos para outras funções quando usada como
argumento de uma função definido pelo utilizador. Exemplo:
…
f.1 <- function(x) return(log(x^-1))
f.2 <- function(y, ...) print(y + f.1(...))
f.2(y=10, x=20) # o argumento x é passado para f.1
# [1] 7.004268
on.exit()
parse()
eval()
Executa a operação definida quando uma função termina normal ou anormalmente. Útil para acções
de limpeza de objectos e gráficos.
Devolve uma expressão não avaliada numa lista.
Avalia uma expressão como código dentro de um determinado ambiente. O exemplo seguinte permite
avaliar uma string como código:
eval(parse(text=paste("xy<-", "c(1,2,3)", sep=""))) ## 1 2 3
system(command)
shell(cmd)
shell.exec()
Executa o comando do SO especificado pelo argumento command.
Executa o comando especificado em cmd usualmente através de uma shell.
Abre o ficheiro ou URL usando para esse efeito a aplicação especificada no sistema de associação de
ficheiros do Windows.
VARIÁVEIS PREDEFINIDAS E INFORMAÇÕES DO SISTEMA
Sys.info()
Sys.getenv()
sessionInfo()
.Platform
.Machine
R.version
options() /
getOption() /
.Options
letters
LETTERS
month.abb,
month.name
colors()
colours()
15
Extrai/reporta informação sobre o sistema/utilizador.
Obtém o valor da s variável ambiental especificada.
Mostra uma sinopse do sistema e da sessão do R em execução.
Lista contendo detalhes acerca da plataforma em que o R foi compilado. Providencia um modo de
escrever código interoperável entre diferentes SO.
Variável predefinida que contém informações relativas as características numéricas do sistema.
Detalhes sobre a versão do R em execução.
Permite estabelecer ou examinar as opções de escopo global do R.
Apresenta todas as letras do alfabeto em minúsculas e maiúsculas respectivamente.
Abreviaturas de letras e nome completo dos meses em inglês. A variante format(ISOdate(2000, 1:12,
1), "%b") e format(ISOdate(2000, 1:12, 1), "%B") mostram a mesma informação em formato )SO PT .
Devolve os nomes das cores embutidas no sistema.
O seguinte código permite visualizar todas as cores disponíveis:
R ‐ Lista de funções
show.colors <- function(x=22,y=30){
par(mai=c(.4,.4,.4,.4), oma=c(.2,0,0,.2))
plot(c(-1,x),c(-1,y), xlab='', ylab='', type='n', xaxt='n', yaxt='n', bty='n')
for(i in 1:x){for(j in 1:y){
k <- y*(i-1)+j ; co <- colors()[k]
rect(i-1, j-1, i, j, col=co, border=1)}}
text(rep(-.5,y),(1:y)-.5, 1:y, cex=1.2-.016*y)
text((1:x)-.5, rep(-.5,x), y*(0:(x-1)), cex=1.2-.022*x)
title('col=colors()[n]')
}
show.colors()
ANÁLISE ESTATÍSTICA
Modelos lineares
lm(formula, data)
fitted()
resid()
predict()
Utiliza‐se para criar modelos lineares pelo método dos mínimos quadrados . A fórmula definida no
primeiro argumento ‐ formula tem a seguinte estrutura: var.dependente ~ var.independente01 +
var.independente02 + …
Funções genéricas utilizadas para obter, respectivamente, os resultados previstos pelo modelo e os
resíduos.
Função genérica usada para calcular os resultados previstos por um objecto de modelação. Em modelos
lineares o parâmetro interval = “confidence” permite obter o intervalo de confiança dos resultados
previstos para um dado level.
BOAS PRÁTICAS DE PROGRAMAÇÃO
‐ Evitar a utilização de objectos temporários em funções, especialmente quando são utilizados apenas uma vez.
‐ Preferencialmente devem ser usadas regras lógicas no interior dos índices dos objectos para fazer indexação/sub‐selecção
em objectos do tipo matriz, data frame ou vector em vez de ciclos for, while, etc. .
‐ Para estabelecer a forma de lidar com valores em falta, diferentes opções podem ser estabelecidas. Com
options(na.action="na.exclude") os valores em falta são assinalados por NA. Com a opção na.omit são eliminados da base de
dados. Para ver a opção getOption("na.action") relativa ao tratamento destes casos.
‐ Em vez de ciclos através dos elementos de um vector, matriz ou data frame as funções apply(), lapply() ou sapply() devem ser
utilizadas devido a sua maior eficácia em tempo de execução.
‐ Para efeitos de gestão eficaz da memória os objectos deverão ser iniciados com o número de elementos necessário em vez de
usar recorrentemente as funções c(), rbind() ou cbind().
‐ A utilização de tabulações para formatar os scripts deve ser efectuada para melhor definir o nível/âmbito de execução de uma
determinada expressão.
‐ Utilizar TRUE e FALSE em vez de T e F, para melhor distinção.
16
R ‐ Lista de funções