Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
02_tutoriais:tutorial8:start [2022/06/26 13:54] adalardo |
02_tutoriais:tutorial8:start [2024/09/13 16:05] (atual) |
||
---|---|---|---|
Linha 50: | Linha 50: | ||
- guarda o tamanho do vetor ''x'' em ''nobs'' | - guarda o tamanho do vetor ''x'' em ''nobs'' | ||
- divide ''soma'' por ''nobs'' e guarda no objeto ''media'' | - divide ''soma'' por ''nobs'' e guarda no objeto ''media'' | ||
- | - retorna o objeto ''med'' | + | - retorna o objeto ''media'' |
</WRAP> | </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. Rodo o código abaixo e cheque se houve a construção do objeto ''media'' e qual a classe desse objeto: | + | 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: |
Linha 63: | Linha 63: | ||
soma <- sum(x) | soma <- sum(x) | ||
nobs <- length(x) | nobs <- length(x) | ||
- | med <- soma/nobs | + | media <- soma/nobs |
- | return(med) | + | return(media) |
} | } | ||
</code> | </code> | ||
Linha 75: | 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 100: | 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 281: | 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 | ||