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 [2025/08/18 10:34] 127.0.0.1 edição externa |
03_apostila:03-funcoes [2025/08/18 10:37] (atual) |
||
---|---|---|---|
Linha 16: | Linha 16: | ||
<code rsplus> | <code rsplus> | ||
- | 4 + 9 | + | > 4 + 9 |
[1] 13 | [1] 13 | ||
- | 4 - 5 | + | > 4 - 5 |
[1] -1 | [1] -1 | ||
- | 4 * 5 | + | > 4 * 5 |
[1] 20 | [1] 20 | ||
- | 4 / 5 | + | > 4 / 5 |
[1] 0.8 | [1] 0.8 | ||
- | 4^5 | + | > 4^5 |
[1] 1024 | [1] 1024 | ||
> | > | ||
Linha 32: | Linha 32: | ||
também pode ser utilizada: | também pode ser utilizada: | ||
<code rsplus> | <code rsplus> | ||
- | (4 + 5 ) * 7 - (36/18)^3 | + | > (4 + 5 ) * 7 - (36/18)^3 |
[1] 55 | [1] 55 | ||
- | (2 * ( 2 * ( 2 * (3-4)))) | + | > (2 * ( 2 * ( 2 * (3-4)))) |
[1] -8 | [1] -8 | ||
> | > | ||
Linha 41: | Linha 41: | ||
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)]}) |
Error: syntax error in "(2 * { 2 * [" | Error: syntax error in "(2 * { 2 * [" | ||
> | > | ||
Linha 48: | Linha 48: | ||
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)) |
</code> | </code> | ||
Linha 56: | Linha 56: | ||
As funções matemáticas comuns também estão disponíveis e podem ser aplicadas diretamente na linha de comando: | As funções matemáticas comuns também estão disponíveis e podem ser aplicadas diretamente na linha de comando: | ||
<code rsplus> | <code rsplus> | ||
- | sqrt(9) # Raiz Quadrada | + | > sqrt(9) # Raiz Quadrada |
[1] 3 | [1] 3 | ||
- | abs( - 1 ) # Módulo ou valor absoluto | + | > abs( - 1 ) # Módulo ou valor absoluto |
[1] 1 | [1] 1 | ||
- | abs( 1 ) | + | > abs( 1 ) |
[1] 1 | [1] 1 | ||
- | log( 10 ) # Logaritmo natural ou neperiano | + | > log( 10 ) # Logaritmo natural ou neperiano |
[1] 2.302585 | [1] 2.302585 | ||
- | log( 10, base = 10) # Logaritmo base 10 | + | > log( 10, base = 10) # Logaritmo base 10 |
[1] 1 | [1] 1 | ||
- | log10(10) # Também logaritmo de base 10 | + | > log10(10) # Também logaritmo de base 10 |
[1] 1 | [1] 1 | ||
- | log( 10, base = 3.4076) # Logaritmo base 3.4076 | + | > log( 10, base = 3.4076) # Logaritmo base 3.4076 |
[1] 1.878116 | [1] 1.878116 | ||
- | exp( 1 ) # Exponencial | + | > exp( 1 ) # Exponencial |
[1] 2.718282 | [1] 2.718282 | ||
> | > | ||
Linha 77: | Linha 77: | ||
As funções trigonométricas: | As funções trigonométricas: | ||
<code rsplus> | <code rsplus> | ||
- | sin(0.5*pi) # Seno | + | > sin(0.5*pi) # Seno |
[1] 1 | [1] 1 | ||
- | cos(2*pi) # Cosseno | + | > cos(2*pi) # Cosseno |
[1] 1 | [1] 1 | ||
- | tan(pi) # Tangente | + | > tan(pi) # Tangente |
[1] -1.224647e-16 | [1] -1.224647e-16 | ||
> | > | ||
- | asin(1) # Arco seno (em radianos) | + | > asin(1) # Arco seno (em radianos) |
[1] 1.570796 | [1] 1.570796 | ||
- | asin(1) / pi * 180 | + | > asin(1) / pi * 180 |
[1] 90 | [1] 90 | ||
> | > | ||
- | acos(0) # Arco cosseno (em radianos) | + | > acos(0) # Arco cosseno (em radianos) |
[1] 1.570796 | [1] 1.570796 | ||
- | acos(0) / pi * 180 | + | > acos(0) / pi * 180 |
[1] 90 | [1] 90 | ||
- | atan(0) # Arco tangente (em radianos) | + | > atan(0) # Arco tangente (em radianos) |
[1] 0 | [1] 0 | ||
- | atan(0) / pi * 180 | + | > atan(0) / pi * 180 |
[1] 0 | [1] 0 | ||
> | > | ||
Linha 102: | Linha 102: | ||
Funções para arredondamento: | Funções para arredondamento: | ||
<code rsplus> | <code rsplus> | ||
- | ceiling( 4.3478 ) | + | > ceiling( 4.3478 ) |
[1] 5 | [1] 5 | ||
- | floor( 4.3478 ) | + | > floor( 4.3478 ) |
[1] 4 | [1] 4 | ||
- | round( 4.3478 ) | + | > round( 4.3478 ) |
[1] 4 | [1] 4 | ||
- | round( 4.3478 , digits=3) | + | > round( 4.3478 , digits=3) |
[1] 4.348 | [1] 4.348 | ||
- | round( 4.3478 , digits=2) | + | > round( 4.3478 , digits=2) |
[1] 4.35 | [1] 4.35 | ||
> | > | ||
Linha 118: | Linha 118: | ||
Funções matemáticas de especial interesse estatístico: | Funções matemáticas de especial interesse estatístico: | ||
<code rsplus> | <code rsplus> | ||
- | factorial( 4 ) # Fatorial de 4 | + | > factorial( 4 ) # Fatorial de 4 |
[1] 24 | [1] 24 | ||
- | 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 | + | > gamma(1.2) # Função gamma |
[1] 0.9181687 | [1] 0.9181687 | ||
+ | > | ||
</code> | </code> | ||
Linha 136: | Linha 136: | ||
<code rsplus> | <code rsplus> | ||
- | a = 3.6 | + | > a = 3.6 |
- | b = sqrt( 35 ) | + | > b = sqrt( 35 ) |
- | c = -2.1 | + | > c = -2.1 |
- | a | + | > a |
[1] 3.6 | [1] 3.6 | ||
- | b | + | > b |
[1] 5.91608 | [1] 5.91608 | ||
- | c | + | > c |
[1] -2.1 | [1] -2.1 | ||
> | > | ||
- | a * b / c | + | > a * b / c |
[1] -10.14185 | [1] -10.14185 | ||
- | b^c | + | > b^c |
[1] 0.02391820 | [1] 0.02391820 | ||
- | a + exp(c) - log(b) | + | > a + exp(c) - log(b) |
[1] 1.944782 | [1] 1.944782 | ||
- | + | > | |
- | a - b * c / d | + | > a - b * c / d |
Error: object "d" not found | Error: object "d" not found | ||
</code> | </code> | ||
Linha 283: | Linha 283: | ||
O que acontece se você criar uma variável com o nome ''pi''? Por exemplo, | O que acontece se você criar uma variável com o nome ''pi''? Por exemplo, | ||
<code rsplus> | <code rsplus> | ||
- | pi = 10 | + | > pi = 10 |
</code> | </code> | ||
O que acontece com a constante //pi//? | O que acontece com a constante //pi//? | ||
Linha 291: | Linha 291: | ||
**DICA:** O que faz a função ''search'', no comando: | **DICA:** O que faz a função ''search'', no comando: | ||
<code rsplus> | <code rsplus> | ||
- | search() | + | > search() |
</code> | </code> | ||
</box> | </box> | ||
Linha 343: | Linha 343: | ||
os argumentos dados a ela, formando um vetor: | os argumentos dados a ela, formando um vetor: | ||
<code rsplus> | <code rsplus> | ||
- | a = c(1, 10, 3.4, pi, pi/4, exp(-1), log( 2.23 ), sin(pi/7) ) | + | > a = c(1, 10, 3.4, pi, pi/4, exp(-1), log( 2.23 ), sin(pi/7) ) |
- | a | + | > a |
[1] 1.0000000 10.0000000 3.4000000 3.1415927 0.7853982 0.3678794 0.8020016 0.4338837 | [1] 1.0000000 10.0000000 3.4000000 3.1415927 0.7853982 0.3678794 0.8020016 0.4338837 | ||
+ | > | ||
</code> | </code> | ||
Linha 353: | Linha 353: | ||
Para criar vetores de números com intervalo fixo unitário (intervalo de 1) se utiliza o //operador sequencial// ('':''): | 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 |
- | b | + | > b |
[1] 1 2 3 4 5 6 7 8 | [1] 1 2 3 4 5 6 7 8 | ||
- | c = 20:32 | + | > c = 20:32 |
- | c | + | > c |
[1] 20 21 22 23 24 25 26 27 28 29 30 31 32 | [1] 20 21 22 23 24 25 26 27 28 29 30 31 32 | ||
- | d = 2.5:10 | + | > d = 2.5:10 |
- | d | + | > d |
[1] 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 | [1] 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 | ||
</code> | </code> | ||
Linha 366: | Linha 366: | ||
Uma forma mais flexível de criar sequê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) |
[1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | ||
- | seq(10, 30, by=2) | + | > seq(10, 30, by=2) |
[1] 10 12 14 16 18 20 22 24 26 28 30 | [1] 10 12 14 16 18 20 22 24 26 28 30 | ||
- | seq(1.5, 7.9, length=20) | + | > seq(1.5, 7.9, length=20) |
[1] 1.500000 1.836842 2.173684 2.510526 2.847368 3.184211 3.521053 3.857895 | [1] 1.500000 1.836842 2.173684 2.510526 2.847368 3.184211 3.521053 3.857895 | ||
[9] 4.194737 4.531579 4.868421 5.205263 5.542105 5.878947 6.215789 6.552632 | [9] 4.194737 4.531579 4.868421 5.205263 5.542105 5.878947 6.215789 6.552632 | ||
Linha 380: | Linha 380: | ||
Também é fácil criar uma sequê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) |
[1] 5 5 5 | [1] 5 5 5 | ||
- | rep(1:5, 3) | + | > rep(1:5, 3) |
[1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 | [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 | ||
- | rep(1:5,each=3) | + | > rep(1:5,each=3) |
[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 | [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 | ||
> | > | ||
Linha 415: | Linha 415: | ||
Todas operações matemáticas aplicadas sobre um vetor, serão aplicadas sobre cada elemento desse vetor: | Todas operações matemáticas aplicadas sobre um vetor, serão aplicadas sobre cada elemento desse vetor: | ||
<code rsplus> | <code rsplus> | ||
- | 2 * a | + | > 2 * a |
[1] 2.0000000 20.0000000 6.8000000 6.2831853 1.5707963 0.7357589 1.6040032 | [1] 2.0000000 20.0000000 6.8000000 6.2831853 1.5707963 0.7357589 1.6040032 | ||
[8] 0.8677675 | [8] 0.8677675 | ||
- | sqrt( a ) | + | > sqrt( a ) |
[1] 1.0000000 3.1622777 1.8439089 1.7724539 0.8862269 0.6065307 0.8955454 | [1] 1.0000000 3.1622777 1.8439089 1.7724539 0.8862269 0.6065307 0.8955454 | ||
[8] 0.6586985 | [8] 0.6586985 | ||
> | > | ||
- | log( a ) | + | > log( a ) |
[1] 0.0000000 2.3025851 1.2237754 1.1447299 -0.2415645 -1.0000000 -0.2206447 | [1] 0.0000000 2.3025851 1.2237754 1.1447299 -0.2415645 -1.0000000 -0.2206447 | ||
[8] -0.8349787 | [8] -0.8349787 | ||
- | + | > | |
</code> | </code> | ||
Linha 431: | Linha 431: | ||
pareando os elementos dos vetores: | pareando os elementos dos vetores: | ||
<code rsplus> | <code rsplus> | ||
- | a* b | + | > a* b |
[1] 1.000000 20.000000 10.200000 12.566371 3.926991 2.207277 5.614011 | [1] 1.000000 20.000000 10.200000 12.566371 3.926991 2.207277 5.614011 | ||
[8] 3.471070 | [8] 3.471070 | ||
- | a - b | + | > a - b |
[1] 0.0000000 8.0000000 0.4000000 -0.8584073 -4.2146018 -5.6321206 -6.1979984 | [1] 0.0000000 8.0000000 0.4000000 -0.8584073 -4.2146018 -5.6321206 -6.1979984 | ||
[8] -7.5661163 | [8] -7.5661163 | ||
- | a^(1/b) | + | > a^(1/b) |
[1] 1.0000000 3.1622777 1.5036946 1.3313354 0.9528356 0.8464817 0.9689709 | [1] 1.0000000 3.1622777 1.5036946 1.3313354 0.9528356 0.8464817 0.9689709 | ||
[8] 0.9008898 | [8] 0.9008898 | ||
- | + | > | |
- | sqrt( a ) | + | > sqrt( a ) |
[1] 1.0000000 3.1622777 1.8439089 1.7724539 0.8862269 0.6065307 0.8955454 | [1] 1.0000000 3.1622777 1.8439089 1.7724539 0.8862269 0.6065307 0.8955454 | ||
[8] 0.6586985 | [8] 0.6586985 | ||
- | log( b ) | + | > log( b ) |
[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 1.9459101 | [1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 1.9459101 | ||
[8] 2.0794415 | [8] 2.0794415 | ||
- | + | > | |
</code> | </code> | ||
Linha 454: | Linha 454: | ||
A função ''length'' retorna o número de elementos de um objeto: | A função ''length'' retorna o número de elementos de um objeto: | ||
<code rsplus> | <code rsplus> | ||
- | a <- seq(from=0, to=10, by=2) | + | > a <- seq(from=0, to=10, by=2) |
- | a | + | > a |
[1] 0 2 4 6 8 10 | [1] 0 2 4 6 8 10 | ||
- | length(a) | + | > length(a) |
[1] 6 | [1] 6 | ||
- | length(1:20) | + | > length(1:20) |
[1] 20 | [1] 20 | ||
- | length(rep(1:10,each=10)) | + | > length(rep(1:10,each=10)) |
[1] 100 | [1] 100 | ||
- | | + | > |
</code> | </code> | ||
Linha 475: | Linha 475: | ||
<code rsplus> | <code rsplus> | ||
- | b | + | > b |
[1] 0 0 0 0 0 1 1 1 1 1 | [1] 0 0 0 0 0 1 1 1 1 1 | ||
- | c | + | > c |
[1] 1 2 3 | [1] 1 2 3 | ||
- | c*b | + | > c*b |
[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 | ||
- | length(c) | + | > length(c) |
[1] 3 | [1] 3 | ||
- | | + | > |
</code> | </code> | ||
Linha 493: | Linha 493: | ||
<code rsplus> | <code rsplus> | ||
- | a | + | > a |
[1] 1 2 | [1] 1 2 | ||
- | b | + | > b |
[1] 0 0 0 0 0 1 1 1 1 1 | [1] 0 0 0 0 0 1 1 1 1 1 | ||
- | a*b | + | > a*b |
[1] 0 0 0 0 0 2 1 2 1 2 | [1] 0 0 0 0 0 2 1 2 1 2 | ||
- | length(b)/length(a) | + | > length(b)/length(a) |
[1] 5 | [1] 5 | ||
> | > | ||
Linha 546: | Linha 546: | ||
As funções matemáticas sobre vetores operam //elemento-a-elemento//. Já as funções estatísticas operam no vetor **como um todo**: | As funções matemáticas sobre vetores operam //elemento-a-elemento//. Já as funções estatísticas operam no vetor **como um todo**: | ||
<code rsplus> | <code rsplus> | ||
- | mean( a ) | + | > mean( a ) |
[1] 2.491344 | [1] 2.491344 | ||
- | var( b ) | + | > var( b ) |
[1] 6 | [1] 6 | ||
- | max( c ) | + | > max( c ) |
[1] 32 | [1] 32 | ||
- | sd( a ) | + | > sd( a ) |
[1] 3.259248 | [1] 3.259248 | ||
- | sum( c ) | + | > sum( c ) |
[1] 338 | [1] 338 | ||
- | min( b ) | + | > min( b ) |
[1] 1 | [1] 1 | ||
- | range( c ) | + | > range( c ) |
[1] 20 32 | [1] 20 32 | ||
- | | + | > |
</code> | </code> | ||
Algumas funções úteis que não são estatísticas, mas operam no vetor são: | Algumas funções úteis que não são estatísticas, mas operam no vetor são: | ||
<code rsplus> | <code rsplus> | ||
- | a | + | > a |
[1] 1.0000000 10.0000000 3.4000000 3.1415927 0.7853982 0.3678794 0.8020016 | [1] 1.0000000 10.0000000 3.4000000 3.1415927 0.7853982 0.3678794 0.8020016 | ||
[8] 0.4338837 | [8] 0.4338837 | ||
- | sort(a) | + | > sort(a) |
[1] 0.3678794 0.4338837 0.7853982 0.8020016 1.0000000 3.1415927 3.4000000 | [1] 0.3678794 0.4338837 0.7853982 0.8020016 1.0000000 3.1415927 3.4000000 | ||
[8] 10.0000000 | [8] 10.0000000 | ||
- | rev(sort(a)) | + | > rev(sort(a)) |
[1] 10.0000000 3.4000000 3.1415927 1.0000000 0.8020016 0.7853982 0.4338837 | [1] 10.0000000 3.4000000 3.1415927 1.0000000 0.8020016 0.7853982 0.4338837 | ||
[8] 0.3678794 | [8] 0.3678794 | ||
- | cumsum(sort(a)) | + | > cumsum(sort(a)) |
[1] 0.3678794 0.8017632 1.5871613 2.3891629 3.3891629 6.5307556 9.9307556 | [1] 0.3678794 0.8017632 1.5871613 2.3891629 3.3891629 6.5307556 9.9307556 | ||
[8] 19.9307556 | [8] 19.9307556 | ||
- | cumsum(a) | + | > cumsum(a) |
[1] 1.00000 11.00000 14.40000 17.54159 18.32699 18.69487 19.49687 19.93076 | [1] 1.00000 11.00000 14.40000 17.54159 18.32699 18.69487 19.49687 19.93076 | ||
- | diff(a) | + | > diff(a) |
[1] 9.0000000 -6.6000000 -0.2584073 -2.3561945 -0.4175187 0.4341221 -0.3681178 | [1] 9.0000000 -6.6000000 -0.2584073 -2.3561945 -0.4175187 0.4341221 -0.3681178 | ||
- | diff( seq(10, 34, length=15) ) | + | > diff( seq(10, 34, length=15) ) |
[1] 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 | [1] 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 | ||
[9] 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 | [9] 1.714286 1.714286 1.714286 1.714286 1.714286 1.714286 | ||
+ | > | ||
</code> | </code> | ||
Linha 607: | Linha 607: | ||
Já foi visto que ao se digitar o nome de uma função na linha de comando, o R retorna o **código** da função. Veja a diferença de: | Já foi visto que ao se digitar o nome de uma função na linha de comando, o R retorna o **código** da função. Veja a diferença de: | ||
<code rsplus> | <code rsplus> | ||
- | ls() | + | > ls() |
</code> | </code> | ||
para: | para: | ||
<code rsplus> | <code rsplus> | ||
- | ls | + | > ls |
</code> | </code> | ||
Linha 619: | Linha 619: | ||
Os argumentos de qualquer função são detalhadamente explicados nas páginas de ajuda sobre a função. Mas para uma rápida consulta dos argumentos de uma função podemos usar a função '''args''': | Os argumentos de qualquer função são detalhadamente explicados nas páginas de ajuda sobre a função. Mas para uma rápida consulta dos argumentos de uma função podemos usar a função '''args''': | ||
<code rsplus> | <code rsplus> | ||
- | args(ls) | + | > args(ls) |
function (name, pos = -1, envir = as.environment(pos), all.names = FALSE, | function (name, pos = -1, envir = as.environment(pos), all.names = FALSE, | ||
pattern) | pattern) | ||
NULL | NULL | ||
- | args(q) | + | > args(q) |
function (save = "default", status = 0, runLast = TRUE) | function (save = "default", status = 0, runLast = TRUE) | ||
NULL | NULL | ||
- | args(save.image) | + | > args(save.image) |
function (file = ".RData", version = NULL, ascii = FALSE, compress = !ascii, | function (file = ".RData", version = NULL, ascii = FALSE, compress = !ascii, | ||
safe = TRUE) | safe = TRUE) | ||
NULL | NULL | ||
- | | + | > |
</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) |
NULL | NULL | ||
- | sin | + | > sin |
.Primitive("sin") | .Primitive("sin") | ||
> | > | ||
Linha 644: | Linha 644: | ||
Outras funções simplesmente não possuem argumentos: | Outras funções simplesmente não possuem argumentos: | ||
<code rsplus> | <code rsplus> | ||
- | args(getwd) | + | > args(getwd) |
function () | function () | ||
NULL | NULL | ||
- | getwd | + | > getwd |
function () | function () | ||
.Internal(getwd()) | .Internal(getwd()) | ||
<environment: namespace:base> | <environment: namespace:base> | ||
- | | + | > |
</code> | </code> | ||
Linha 657: | Linha 657: | ||
Ao observar o resultado da função '''args''', você notará que alguns argumentos são seguidos de uma expressão que se inicia com o sinal de igualdade ('''='''). A expressão após o sinal de igualdade é chamada de **valor default** do argumento. Se o usuário não informar o valor para um dado argumento, a função usa o valor default. Como exemplo veja a função '''save.image''': | Ao observar o resultado da função '''args''', você notará que alguns argumentos são seguidos de uma expressão que se inicia com o sinal de igualdade ('''='''). A expressão após o sinal de igualdade é chamada de **valor default** do argumento. Se o usuário não informar o valor para um dado argumento, a função usa o valor default. Como exemplo veja a função '''save.image''': | ||
<code rsplus> | <code rsplus> | ||
- | args(save.image) | + | > args(save.image) |
function (file = ".RData", version = NULL, ascii = FALSE, compress = !ascii, | function (file = ".RData", version = NULL, ascii = FALSE, compress = !ascii, | ||
safe = TRUE) | safe = TRUE) | ||
NULL | NULL | ||
+ | > | ||
</code> | </code> | ||
Linha 701: | Linha 701: | ||
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 ) |
function (n, mean = 0, sd = 1) | function (n, mean = 0, sd = 1) | ||
NULL | NULL | ||
- | vn1 = rnorm( 1000, mean = 40, sd = 9 ) | + | > vn1 = rnorm( 1000, mean = 40, sd = 9 ) |
- | mean( vn1 ) | + | > mean( vn1 ) |
[1] 39.47248 | [1] 39.47248 | ||
- | sd( vn1 ) | + | > sd( vn1 ) |
[1] 8.523735 | [1] 8.523735 | ||
- | range( vn1 ) | + | > range( vn1 ) |
[1] 14.93126 62.11959 | [1] 14.93126 62.11959 | ||
> | > | ||
- | vn2 = rnorm( 100000, mean = 40, sd = 9 ) | + | > vn2 = rnorm( 100000, mean = 40, sd = 9 ) |
- | mean( vn2 ) | + | > mean( vn2 ) |
[1] 40.02547 | [1] 40.02547 | ||
- | sd( vn2 ) | + | > sd( vn2 ) |
[1] 9.025218 | [1] 9.025218 | ||
- | range( vn2 ) | + | > range( vn2 ) |
[1] 3.40680 78.25496 | [1] 3.40680 78.25496 | ||
- | + | > | |
</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 ) |
function (q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) | function (q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) | ||
NULL | NULL | ||
> | > | ||
- | pnorm( 1.96, mean = 0 , sd = 1 ) | + | > pnorm( 1.96, mean = 0 , sd = 1 ) |
[1] 0.9750021 | [1] 0.9750021 | ||
- | pnorm( 1.96 ) | + | > pnorm( 1.96 ) |
[1] 0.9750021 | [1] 0.9750021 | ||
> | > | ||
- | pnorm( 27, mean = 20, sd = 7 ) | + | > pnorm( 27, mean = 20, sd = 7 ) |
[1] 0.8413447 | [1] 0.8413447 | ||
- | pnorm( 13, mean = 20, sd = 7 ) | + | > pnorm( 13, mean = 20, sd = 7 ) |
[1] 0.1586553 | [1] 0.1586553 | ||
+ | > | ||
</code> | </code> | ||
Linha 743: | Linha 743: | ||
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 ) |
function (p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) | function (p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) | ||
NULL | NULL | ||
- | qnorm( 0.90 ) | + | > qnorm( 0.90 ) |
[1] 1.281552 | [1] 1.281552 | ||
- | qnorm( 0.30 ) | + | > qnorm( 0.30 ) |
[1] -0.5244005 | [1] -0.5244005 | ||
> | > | ||
- | qnorm( 0.90, 20, 7) | + | > qnorm( 0.90, 20, 7) |
[1] 28.97086 | [1] 28.97086 | ||
- | qnorm( 0.30, 20, 7) | + | > qnorm( 0.30, 20, 7) |
[1] 16.32920 | [1] 16.32920 | ||
+ | > | ||
</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) # Sequencia 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 |
- | points(x, dnorm(x, sd=2)) # Curva da Dist. Normal com média 0 e desvio padrão 2 (adicionada ao gráfico) | + | > points(x, dnorm(x, sd=2)) # Curva da Dist. Normal com média 0 e desvio padrão 2 (adicionada ao gráfico) |
> | > | ||
</code> | </code> | ||
Linha 879: | Linha 879: | ||
Construa uma seqüência **ordenada** de 1000 números entre 0 e 1: | Construa uma seqüência **ordenada** de 1000 números entre 0 e 1: | ||
<code rsplus> | <code rsplus> | ||
- | p = seq(0, 1, length=1000) | + | > p = seq(0, 1, length=1000) |
</code> | </code> | ||
O vetor '''p''' representa um vetor de probabilidades acumuladas. | O vetor '''p''' representa um vetor de probabilidades acumuladas. | ||
Linha 885: | Linha 885: | ||
Gere 1000 números aleatórios da distribuição Normal com média e desvio-padrão 1 (um) e coloque os números em ordem: | Gere 1000 números aleatórios da distribuição Normal com média e desvio-padrão 1 (um) e coloque os números em ordem: | ||
<code rsplus> | <code rsplus> | ||
- | x = sort( rnorm(1000, mean=1) ) | + | > x = sort( rnorm(1000, mean=1) ) |
</code> | </code> | ||
Faça um gráfico dos quantis da distribuição Normal, tomando o vetor '''p''' de probabilidades, contra os valores de '''x''': | Faça um gráfico dos quantis da distribuição Normal, tomando o vetor '''p''' de probabilidades, contra os valores de '''x''': | ||
<code rsplus> | <code rsplus> | ||
- | plot( qnorm(p, mean=1), x ) | + | > plot( qnorm(p, mean=1), x ) |
</code> | </code> | ||