Ferramentas do usuário

Ferramentas do site


03_apostila:03-funcoes

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
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>​
  
03_apostila/03-funcoes.txt · Última modificação: 2025/08/18 10:37 (edição externa)