#### Tutorial - Funções Matemáticas - Monitoria 2010

########## ############### #############

getwd()
setwd("C:/Users/Barbara/Documents/Mestrado/Monitoria/funcoes matematicas")

#########   Operações com Vetores	##########


a <- 1:10
a
b <- -(1:10)
b
sum(a+b)	### operação com vetores faz a conta um a um

a <- seq(from=0, to=1, length = 9)
a
b <- seq(from=0, to=0.5, length = 9)
b
a/b
b/a
1+b/a		#### faz a divisão primeiro e depois soma 1 ao resultado
(1+b)/a	#### soma 1 a cd valor de b e depois divide por a

a <- rep( c(1,2), each=3 )	#### faz 3 repetições de 1 e depois de 2
a
b <- rep( c(3,4), 6)		#### faz 6 repetições de 3,4
b
a+b		#### faz a soma de a 2 vezes (a tem 6 valores e b tem 12)

#########   Cálculo da Média	#########   

pesos <- c(78.4, 79.8, 76.0, 75.3, 77.4, 78.6, 77.9, 78.8, 79.2, 75.2, 75.0, 79.4)

pesos.dif <- diff(pesos)	####  dif entre o valos e seu consecutivo

pesos.dif

length(pesos)		#### qtos valores tem no vetor
length(pesos.dif)

max(pesos)
min(pesos)
mean(pesos)

range(pesos)	#### valores máx e min

sum(pesos)/length(pesos)

#########   Valores Faltantes e Não-Numéricos	#########   

mean( log(pesos.dif, base=10) )	#### aviso: NaN (resultados não numéricos - não existe log de nº negativo)

pesos.dif
log(pesos.dif, base=10)

falta.um <- c(rep(10,9),NA)
falta.um
mean(falta.um)		####Basta um valor faltante (NA) ou não numérico (NaN) para que operações numéricas retornem NA e NaN, respectivamente

sqrt(-1:9)
mean(sqrt(-1:9))

mean(falta.um, na.rm=TRUE)	#### remove os NAs para realizar operação
var(sqrt(-1:9), na.rm=TRUE)

#########   Índice de Shannon		#########  H´=-? pi lnpi 

 
abund <- c(13, 23, 29, 29, 30, 48, 72, 76, 83, 84, 86, 97,102, 229, 343)
abund 
tot <- sum(abund)
tot
pi <- abund/tot
pi
log.pi <- log(pi)
log.pi
pi.log.pi <- pi*log.pi
pi.log.pi
H <- - sum(pi.log.pi)
H

-sum( abund/sum(abund) * log( abund/sum(abund) ) )

search()

pi

base::pi

#########   Amplitude de uma Amostra Normal	######### 

normal.1 <- rnorm(10, mean = 10, sd = 0.5)

range(normal.1)
diff( range(normal.1) )		#### calcula diferença entre o máx e min, dados pelo range
normal.1  

normal.2 <- rnorm(100, mean = 10, sd = 0.5)
range (normal.2)
diff( range ( rnorm(100, mean = 10, sd = 0.5) ) )
diff( range ( rnorm(1000, mean = 10, sd = 0.5) ) )
diff( range ( rnorm(10000, mean = 10, sd = 0.5) ) )

#########   Qui-quadrado na unha	#########   

disponivel <- c(60,28,9,2.5,0.5)
consumido <- c(544,285,117,54,12)

tot.itens <- sum(consumido)
tot.itens
esperado <- tot.itens*disponivel/100
esperado
desvio <- consumido - esperado
desvio

d.quad <- desvio^2/esperado
qui2 <- sum(d.quad)
qui2

pchisq(q=qui2, df=4, lower.tail=FALSE)



