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 | ||
03_apostila:03-funcoes [2020/08/20 16:10] adalardo |
03_apostila:03-funcoes [2023/08/22 12:51] (atual) |
||
---|---|---|---|
Linha 12: | Linha 12: | ||
==== Operações Aritméticas Básicas ==== | ==== Operações Aritméticas Básicas ==== | ||
- | A linha de comando do R funciona como uma calculadora. Todas operações aritméticas | + | A linha de comando do R funciona como uma calculadora. As principais operações aritméticas |
- | e funções matemáticas principais estão disponíveis. Exemplo: | + | e funções matemáticas estão disponíveis. Exemplo: |
<code rsplus> | <code rsplus> | ||
Linha 39: | Linha 39: | ||
</code> | </code> | ||
- | Note que somente os parênteses podem ser utilizados nas expressões matemáticas. As chaves ("{}") e os colchetes ("[]") têm outras funções no R: | + | Note que somente os parênteses podem ser utilizados nas expressões matemáticas. As chaves ("{}") e os colchetes ("[]") têm outras funções no R: |
<code rsplus> | <code rsplus> | ||
> (2 * { 2 * [ 2 * (3-4)]}) | > (2 * { 2 * [ 2 * (3-4)]}) | ||
Linha 46: | Linha 46: | ||
</code> | </code> | ||
- | Por que o R é uma calculadora **fora do comum** ? Experimente fazer a seguinte operação matemática na sua calculadora: | + | Por que o R é uma calculadora **fora do comum** ? Experimente fazer a seguinte operação matemática na sua calculadora: |
<code rsplus> | <code rsplus> | ||
> 1 - (1 + 10^(-15)) | > 1 - (1 + 10^(-15)) | ||
Linha 79: | Linha 79: | ||
> sin(0.5*pi) # Seno | > sin(0.5*pi) # Seno | ||
[1] 1 | [1] 1 | ||
- | > cos(2*pi) # Coseno | + | > cos(2*pi) # Cosseno |
[1] 1 | [1] 1 | ||
> tan(pi) # Tangente | > tan(pi) # Tangente | ||
Linha 89: | Linha 89: | ||
[1] 90 | [1] 90 | ||
> | > | ||
- | > acos(0) # Arco coseno (em radianos) | + | > acos(0) # Arco cosseno (em radianos) |
[1] 1.570796 | [1] 1.570796 | ||
> acos(0) / pi * 180 | > acos(0) / pi * 180 | ||
Linha 122: | Linha 122: | ||
> choose(10, 3) # Coeficientes binomiais: combinação de 10 3-a-3 | > choose(10, 3) # Coeficientes binomiais: combinação de 10 3-a-3 | ||
[1] 120 | [1] 120 | ||
+ | > gamma(1.2) # Função gamma | ||
+ | [1] 0.9181687 | ||
> | > | ||
</code> | </code> | ||
Linha 191: | Linha 193: | ||
Se o diâmetro à altura do peito (DAP) de uma árvore for 13.5cm, qual | Se o diâmetro à altura do peito (DAP) de uma árvore for 13.5cm, qual | ||
a área transversal? | a área transversal? | ||
- | |||
- | Se uma árvore possui três fustes com DAPs de: 7cm, 9cm e 12cm, qual | ||
- | a sua área transversal? | ||
</box> | </box> | ||
Linha 201: | Linha 200: | ||
Se uma árvore possui três fustes com DAPs de: 7cm, 9cm e 12cm, qual | Se uma árvore possui três fustes com DAPs de: 7cm, 9cm e 12cm, qual | ||
- | o diâmetro (único) que é equivalente à sua área transversal? | + | a sua área transversal de cada fuste? |
</box> | </box> | ||
Linha 209: | Linha 208: | ||
O modelo alométrico de biomassa ajustado para árvores do Cerradão | O modelo alométrico de biomassa ajustado para árvores do Cerradão | ||
- | estabele que a biomassa é dada pela expressão: | + | estabelece que a biomassa é dada pela expressão: |
$$\hat{b} = e^{-1,7953} d^{2.2974}$$ | $$\hat{b} = e^{-1,7953} d^{2.2974}$$ | ||
Linha 270: | Linha 269: | ||
* ''Inf'' - infinito; | * ''Inf'' - infinito; | ||
* ''NaN'' - indeterminado (Not a Number), normalmente resultado de uma operação matemática indeterminada; | * ''NaN'' - indeterminado (Not a Number), normalmente resultado de uma operação matemática indeterminada; | ||
- | * ''NA'' - indeterminado (Not Available), normalmente caracterizando uma observação perdida (//missing value//). | + | * ''NA'' - indeterminado (Not Available), normalmente caracterizando uma observação perdida ou faltante (//missing value//). |
Na operações matemáticas, ''NaN'' e ''NA'' atuam sempre como **indeterminado**. | Na operações matemáticas, ''NaN'' e ''NA'' atuam sempre como **indeterminado**. | ||
+ | |||
+ | |||
+ | === Exercícios === | ||
Linha 285: | Linha 287: | ||
O que acontece com a constante //pi//? | O que acontece com a constante //pi//? | ||
- | E se for criada uma constante de nome ''sqrt''? O que acontece com a função raíz quadrada (''sqrt()'')? | + | E se for criada uma constante de nome ''sqrt''? O que acontece com a função raiz quadrada (''sqrt()'')? |
**DICA:** O que faz a função ''search'', no comando: | **DICA:** O que faz a função ''search'', no comando: | ||
Linha 293: | Linha 295: | ||
</box> | </box> | ||
- | |||
- | |||
- | === Exercícios === | ||
<box left red 80%| //**2.6. Exercício Conceitual:** O que é uma Observação Perdida//> | <box left red 80%| //**2.6. Exercício Conceitual:** O que é uma Observação Perdida//> | ||
Linha 341: | Linha 340: | ||
=== Concatenação de Elementos em um Vetor: a Função "c" === | === Concatenação de Elementos em um Vetor: a Função "c" === | ||
- | Para criar um vetor, podemos usar a função ''c'' (c = colar, concatenar). Essa função simplesmente junta todos | + | Para criar um vetor, podemos usar a função ''c'' (c = concatenar). Essa função simplesmente junta todos |
os argumentos dados a ela, formando um vetor: | os argumentos dados a ela, formando um vetor: | ||
<code rsplus> | <code rsplus> | ||
Linha 352: | Linha 351: | ||
=== Criação de Sequências: Operador ":" e Função "seq" === | === Criação de Sequências: Operador ":" e Função "seq" === | ||
- | Para criar vetores de números com intervalo fixo unitário (intervalo de 1) se utiliza o //operador seqüencial// ('':''): | + | Para criar vetores de números com intervalo fixo unitário (intervalo de 1) se utiliza o //operador sequencial// ('':''): |
<code rsplus> | <code rsplus> | ||
> b = 1:8 | > b = 1:8 | ||
Linha 365: | Linha 364: | ||
</code> | </code> | ||
- | Uma forma mais flexível de criar seqüências de números (inteiros ou reais) é usando a função '''seq''': | + | Uma forma mais flexível de criar sequências de números (inteiros ou reais) é usando a função ''seq'': |
<code rsplus> | <code rsplus> | ||
> seq(10, 30) | > seq(10, 30) | ||
Linha 379: | Linha 378: | ||
=== Vetores de Valores Repetidos: Função "rep" === | === Vetores de Valores Repetidos: Função "rep" === | ||
- | Também é fácil criar uma seqüência de números repetidos utilizando a função '''rep''': | + | Também é fácil criar uma sequência de números repetidos utilizando a função ''rep'': |
<code rsplus> | <code rsplus> | ||
> rep(5, 3) | > rep(5, 3) | ||
Linha 397: | Linha 396: | ||
Uma palmeira perfilhada possui 10 fustes com os seguintes diâmetros: 5, 6, 7, 5, 10, 11, 6, 8, 9 e 7. | Uma palmeira perfilhada possui 10 fustes com os seguintes diâmetros: 5, 6, 7, 5, 10, 11, 6, 8, 9 e 7. | ||
- | Crie um vetor '''dap''' com os diâmetros acimas e uma seqüência que enumera os fustes. | + | Crie um vetor ''dap'' com os diâmetros acima e uma sequência que enumera os fustes. |
</box> | </box> | ||
Linha 483: | Linha 482: | ||
[1] 0 0 0 0 0 3 1 2 3 1 | [1] 0 0 0 0 0 3 1 2 3 1 | ||
Warning message: | Warning message: | ||
- | In c * b : longer object length is not a multiple of shorter object length | + | In c * b : longer object length 'is' not a multiple of shorter object length |
> length(b) | > length(b) | ||
[1] 10 | [1] 10 | ||
Linha 523: | Linha 522: | ||
<box left red | //**Exercício 2.9.** Bits e Bytes//> | <box left red | //**Exercício 2.9.** Bits e Bytes//> | ||
- | Como construir uma seqüência que representa o aumento do número | + | Como construir uma sequência que representa o aumento do número |
de bits por byte de computador, quando se dobra o tamanho dos bytes? | de bits por byte de computador, quando se dobra o tamanho dos bytes? | ||
- | Essa seqüência numérica parte do 2 e dobra os valores a cada passo. | + | Essa sequência numérica parte do 2 e dobra os valores a cada passo. |
</box> | </box> | ||
Linha 634: | Linha 633: | ||
</code> | </code> | ||
- | Algumas funções, entretanto, são primitivas ou internas e seus argumentos não são apresentados. Geralmente, nesses casos os argumentos são bastante óbvios: | + | Algumas funções, entretanto, são primitivas ou internas e seus argumentos não são apresentados. Geralmente, nesses casos os argumentos são bastante óbvios: |
<code rsplus> | <code rsplus> | ||
> args(sin) | > args(sin) | ||
Linha 700: | Linha 699: | ||
==== Distribuição Normal ==== | ==== Distribuição Normal ==== | ||
- | A distribuição Normal é a distribuição central da teoria estatística. Para gerar uma amostra de observações de uma distribuição normal utilizamos a função '''rnorm''': | + | A distribuição Normal é a distribuição central da teoria estatística. Para gerar uma amostra de observações de uma distribuição normal utilizamos a função ''rnorm'': |
<code rsplus> | <code rsplus> | ||
> args( rnorm ) | > args( rnorm ) | ||
Linha 723: | Linha 722: | ||
</code> | </code> | ||
- | Se quisermos saber a //probabilidade acumulada// até um certo valor de uma variável com distribuição normal utilizamos a função '''pnorm''': | + | Se quisermos saber a //probabilidade acumulada// até um certo valor de uma variável com distribuição normal utilizamos a função ''pnorm'': |
<code rsplus> | <code rsplus> | ||
> args(pnorm ) | > args(pnorm ) | ||
Linha 742: | Linha 741: | ||
- | Se quisermos obter o valor de um //quantil// da distribuição normal utilizamos a função '''qnorm''': | + | Se quisermos obter o valor de um //quantil// da distribuição normal utilizamos a função ''qnorm'': |
<code rsplus> | <code rsplus> | ||
> args( qnorm ) | > args( qnorm ) | ||
Linha 759: | Linha 758: | ||
</code> | </code> | ||
- | A função '''dnorm''' fornece a //densidade probabilística// para cada valor de uma variável Normal: | + | A função ''dnorm'' fornece a //densidade probabilística// para cada valor de uma variável Normal: |
<code rsplus> | <code rsplus> | ||
> args( dnorm ) | > args( dnorm ) | ||
function (x, mean = 0, sd = 1, log = FALSE) | function (x, mean = 0, sd = 1, log = FALSE) | ||
NULL | NULL | ||
- | > x = seq(-4, 4, length=10000) # Seqüência de -4 a 4 com 10.000 valores | + | > x = seq(-4, 4, length=10000) # Sequencia de -4 a 4 com 10.000 valores |
> | > | ||
> plot(x, dnorm(x)) # Curva da Dist. Normal com média 0 e desvio padrão 1 | > plot(x, dnorm(x)) # Curva da Dist. Normal com média 0 e desvio padrão 1 | ||
Linha 777: | Linha 776: | ||
<box left red 100% | //**Exercício 2.13** Amplitude Normal//> | <box left red 100% | //**Exercício 2.13** Amplitude Normal//> | ||
- | Tomando uma variável que segue a Distribuição Normal, o que acontence com a //amplitude de variação// dos dados à medida que o tamanho da amostra cresce (por exemplo n= 100, 1000, 10000)? | + | Tomando uma variável que segue a Distribuição Normal, o que acontece com a //amplitude de variação// dos dados à medida que o tamanho da amostra cresce (por exemplo n= 100, 1000, 10000)? |
**Dica:** use as funções ''range'' e ''diff'' | **Dica:** use as funções ''range'' e ''diff'' | ||
Linha 785: | Linha 784: | ||
<box left red 100% | //**Exercício 2.14.** Intervalo Normal I //> | <box left red 100% | //**Exercício 2.14.** Intervalo Normal I //> | ||
- | Qual o intervalo da Distribuição Normal Padronizada que têm a média no centro e contem 50% das observações? | + | Qual o intervalo da Distribuição Normal Padronizada que têm a média no centro e contém 50% das observações? |
</box> | </box> |