Buscar

Funções em R

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Funções
Aulas de 03 e 05 de fevereiro do curso de Spector
 
Funções em R
● Você pode escrever suas próprias funções
– Tome cuidado para verificar que uma função com 
esse nome não existe (digite o nome, se R dizer 
que não existe, tudo bem)
● Por que?
– Você escreve o mesmo código vários vezes. Faça 
uma função e a chama.
– Funções são salvas na área de trabalho.
– É fácil escrever funções que chamam outras já 
existentes, mas com os argumentos que você quer
– Pode passar funções customizadas para 'aggregate', 
'sapply', 'by', 'apply', 'sweep', etc.
 
Como é que Funções funcionam?
Cada função em R tem um conjunto de 
argumentos que ela aceita. 
Ver na página 'help', digite o nome da função, usa 
a função 'args'.
Você pode passar argumentos na ordem que a 
função espera ou pode nomear os argumentos.
 
Exemplo com 'read.table'
Se passar argumentos sem nome para 
'read.table' ela esperaria 'file', depois 'header', 
depois 'sep', etc...
Para ler o arquivo 'my.data' com 'header' como 
TRUE e 'sep' como ',' os seguinte comandos são 
equivalentes:
read.table('my.data',TRUE,',')
read.table(sep=',',TRUE,file='my.data')
read.table(file='my.data',sep=',',header=TRUE)
read.table('my.data',sep=',',header=TRUE)
 
Continuação de 'read.table'
Note que somente o argumento 'file' não tem um 
argumento previamente definido (default, padrão). 
Este argumento é obrigatório (required).
Se não especificar os outros argumentos os 
valores padrão serão usados.
A maioria das funções em R tem os primeiros 
argumentos sendo os mais usados. Outros 
opções são passados pelo sintaxe nome=valor .
 
Exemplo com 'read.csv'
Na lista de argumentos encontramos '…' . 
Também o encontramos na chamada à 
'read.table'. 
'…' quer dizer todos os argumentos que foram 
passados à função que não correspondem aos 
argumentos anteriores.
Qualquer argumento além de 'file', 'header', 'sep', 
'quote', 'dec', ou 'fill' faz parte de '…' e será 
passado para 'read.table':
read.csv(filename,stringsAsFactors=FALSE)
 
Mais sobre '...'
Se o argumento '…' não for incluído na definição 
da função, qualquer argumento desconhecido 
resultará em um erro.
Se você quiser manipular os argumentos em '…' 
você pode criar uma lista deles via o comando 
'list(...)'
 
Sua própria função 'myread.csv'
Vamos construir uma função que chama 
'read.csv' mas que sempre tem 'stringsAsFactors' 
sendo FALSE.
Para flexibilidade queremos poder passar outros 
argumentos para 'read.csv', então incluiremos '…'
myread.csv = function(file,stringsAsFactors=FALSE,...) {
 read.csv(file,stringsAsFactors=stringsAsFactors,...)
}
mydata = myread.csv(filename)
 
Aula do Spector de 05 de fevereiro
 
Ambiente de Funções
Quando você cria uma função um novo ambiente é 
criado e as variáveis dentro da função não são vistos, 
nem existem, fora da função. Você pode usar objetos no 
ambiente da chamada, mas qualquer mudanças feitas 
neles só persistem dentro do ambiente da função. Para 
informação da sua função chegar ao ambiente que a 
chamou, a função precisa passar um valor de retorno. R 
automaticamente retorna a última expressão que não foi 
atribuída a uma variável ou você pode colocar o objeto a 
retornar na função 'return'. Somente um único objeto 
pode ser retornado pela função, então múltiplos objetos 
podem ser retornados em uma lista e depois extraídos.
 
Tamanhos de Objetos
● 'length' retorna:
– o comprimento de um vetor,
– O número de elementos em uma matriz
– O número de colunas de um data frame
● 'dim' retorna:
– Um vetor de comprimento 2 contendo o número de linhas e colunas 
de uma matriz ou data frame (pode usar as funções 'nrow' e 'ncol'.
– NULL para um vetor
● 'nchar' retorna:
– Numero de caracteres num 'string'
– Vetor do numero de caracteres de cada 'string' num vetor de 'strings'
– O número de caracteres na representação impressa de um número.
 
Manipulação de Caracteres – 'paste'
A função 'paste' converte seus argumentos em 
caracteres, então pode passar numeros e 'strings' 
para a função. Ela concatena os argumentos para 
criar novos 'strings' que são combinações de 
outros. Ela aceita um número illimitado de 
argumentos sem nome (que serão colados) e um 
ou ambos dos argumentos 'sep=' e 'collapse='. 
Dependendo dos argumentos ser escalares ou 
vetores e quais de 'sep=' e 'collapse=' são 
usados, muitas tarefas podem ser executadas. 
 
'paste'
● Único argumento escalar – retorna um string
● Mais que um escalar – retorna um string com 'sep'
● Um vetor com collapse!=NULL – retorna um string
● Mais que um argumento, um sendo um vetor – 
retorna um vetor do comprimento do mair vetor com 
os outros argumentos colados (reciclando se for 
necessário)
 
'grep'
A função 'grep' busca para padrões em texto. O 
primeiro argumento é o string ou a expressão 
regular que você quer achar. O segundo 
argumento usualmente é um vetor de caracteres. 
'grep' retorna os índices dos elementos do vetor 
que contém o que você procura.
Por enquanto só strings, mas depois, expressões 
regulares. :)
Ver exemplos. 
 
'strsplit'
'strsplit' recebe como entrada um vetor de strings 
e quebra cada elemento em pedaços baseado no 
valor do argumento 'split='. Este argumento pode 
ser um string de texto normal ou uma expressão 
regular. Como cada elemento do vetor pode ser 
quebrado em números diferentes de pedaços, os 
resultados de 'strsplit' são sempre retornados em 
uma lista.
('sapply' funciona bem com lists)
 
'substring'
A função 'substring' permite extrair partes de um string. 
O primeiro argumento é um string ou vetor de strings e o 
segundo argumento é o índice (começando com 1) do 
começo do substring desejado. Sem um terceiro 
argumento, 'substring' retorna o novo string começando 
no índice especificado e continuando até o fim do string; 
um terceiro argumento representa o último índice do 
string original que será incluído no substring que é 
retornado. O grande valor dessa função é que é 
vetorizado. Você pode extrair substrings de um vetor de 
strings com uma chamada à função. Pode aparecer no 
esquerdo ou direito.
 
'tolower', 'toupper', 'sub' e 'gsub'
● 'tolower', 'toupper' – Essas funções convertem os 
argumentos a todos maiúsculos ou todos 
minúsculos, respectivamente.
● 'sub' e 'gsub' – substitui caracteres ou uma expressão 
regular por outros caracteres. 'sub' troca a primeira 
ocorrência, 'gsub' todas.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17

Outros materiais