Ferramentas do usuário

Ferramentas do site


02_tutoriais:tutorial8:start

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
02_tutoriais:tutorial8:start [2022/06/26 13:39]
adalardo [Nossos Personagens]
02_tutoriais:tutorial8:start [2024/09/13 16:05] (atual)
Linha 40: Linha 40:
 ===== FAZENDO VERSÕES PIORADAS DE FUNÇÕES EXISTENTES!!!! ===== ===== FAZENDO VERSÕES PIORADAS DE FUNÇÕES EXISTENTES!!!! =====
  
-Uma funções ​muito simples+Vamos construir algumas ​funções simples. A primeira é uma função que calcula a média de um conjunto de valores. 
 +A primeira etapa é definir qual o tipo de objetos que a função irá manipular e designar um nome a esse objeto como um argumento. No caso da média podemos definir esse objeto como um vetor numérico ''​x''​. Em seguida precisamos definir o algoritmo que será executado. Uma forma de fazer isso é através de um pseudocódigo que é a descrição literal do algoritmo.  
 +No nosso caso: 
 + 
 +<WRAP center round box 60%> 
 +**Pseudocodigo ''​media''​ ** 
 +  - recebe um vetor ''​x''​ 
 +  - soma os valores do vetor no objeto ''​soma''​ 
 +  - guarda o tamanho do vetor ''​x''​ em ''​nobs''​ 
 +  - divide ''​soma''​ por ''​nobs''​ e guarda no objeto ''​media''​ 
 +  - retorna o objeto ''​media''​ 
 +</​WRAP>​ 
 +  
 + 
 + 
 +Depois de definir o que a função conterá, precisamos abrir um  bloco de código para conter as linhas de comando que definem o algoritmo com as chaves ''​{ }''​. Em seguida colocamos as linhas de comando descritas no pseudocodigo e rodamos todo o bloco de código desde a atribuição da função a um nome para construir um objeto da classe ''​function''​ na nossa área de trabalho. ​ Rode o código abaixo e cheque se houve a construção do objeto ''​media''​ e qual a classe desse objeto: 
  
 <code rsplus> <code rsplus>
Linha 53: Linha 69:
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Note que a função nada mais é do que um conjunto de linhas de comando concatenadas para executar uma tarefa. A principio ​quem conhece ​as funções básicas do R já está qualificado a fazer funções mais complexas.+Note que a função nada mais é do que um conjunto de linhas de comando concatenadas para executar uma tarefa. A princípio ​quem usa as funções básicas do R já está qualificado a fazer funções mais complexas ​a partir delas.
  
 </​WRAP>​ </​WRAP>​
Linha 59: Linha 75:
 ===== Testando a função ===== ===== Testando a função =====
    
 +Para testar a função que acabamos de fazer, utilizamos ela da mesma maneira que as outras funções que usamos até agora. Com a diferença que esta não tem a documentação que as funções de pacotes precisam ter para poderem ser disponibilizadas no repositório do R. Rode os códigos abaixo para ver a sua função em atividade:
 +
 <code rsplus> <code rsplus>
  
 ls() ls()
 +class(media)
 media media
 media() media()
 +help(media)
 dados <- rnorm(20, 2, 1) dados <- rnorm(20, 2, 1)
 media(dados) media(dados)
Linha 84: Linha 104:
 A função padrão do R (''​mean()''​) não calcula a média quando há ''​NA''​ no vetor de dados, a menos que o usuário utilize ​ o argumento ''​na.rm = TRUE''​. A função padrão do R (''​mean()''​) não calcula a média quando há ''​NA''​ no vetor de dados, a menos que o usuário utilize ​ o argumento ''​na.rm = TRUE''​.
 Vamos construir uma função que diferente da função padrão, calcule a média na presença de ''​NA''​ e imprima na tela uma mensagem sobre o número de ''​NA''​ removidos do cálculo. ​ Vamos construir uma função que diferente da função padrão, calcule a média na presença de ''​NA''​ e imprima na tela uma mensagem sobre o número de ''​NA''​ removidos do cálculo. ​
-Note que é uma função com dois argumentos, que permite ao usuário tomar a decisão de remover ou não ''​NA''​. Diferente da função ''​mean()''​ o padrão é invertido, nossa função remove ''​NA''​ se nenhum argumento for mencionado. Note que vamos sobrepor o objeto anterior da classe ''​função'',​ chamado **media**. ​+Note que é uma função com dois argumentos, que permite ao usuário tomar a decisão de remover ou não ''​NA''​. Diferente da função ''​mean()''​ o padrão é invertido, nossa função remove ''​NA''​ se nenhum argumento for mencionado. Note que vamos sobrepor o objeto anterior da classe ''​function'',​ chamado **media**. ​
  
  
Linha 265: Linha 285:
 sum(dados.pois20) ## a somatória aqui sempre dará 131, somente porque a semente é a mesma sum(dados.pois20) ## a somatória aqui sempre dará 131, somente porque a semente é a mesma
 set.seed(22) set.seed(22)
-dados.norm20<​-rnorm(20,​mean=6,​ sd=2) ## sorteia 20 dados de uma função normal com média 6 e dp = 1+dados.norm20<​-rnorm(20,​mean=6,​ sd=2) ## sorteia 20 dados de uma função normal com média 6 e dp = 2
 sum (dados.norm20) ​              ### aqui o resultado dará sempre 130.48 sum (dados.norm20) ​              ### aqui o resultado dará sempre 130.48
  
02_tutoriais/tutorial8/start.1656261551.txt.gz · Última modificação: 2022/06/26 13:39 por adalardo