Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2015:alunos:trabalho_final:pfranzan:start

PAOLA FRANZAN SANCHES

img-20150101-wa0004.jpg

Bióloga, Mestre em Ecologia, Doutoranda em Ciências com área de concentração em Oceanografia Biológica

img-20141231-wa0011.pdf

exec

exercicios_1_2_3_atividade_preparatoria_final.txt

exercicios_aula_4_versao_final.txt

script_exercicio_aula5.txt

7_2.txt

exercicio_8_1.txt

109_2.txt

TRABALHO FINAL:

Plano A

Coeficientes de similaridade têm grande aplicação na Ecologia, pois eles comparam a similaridade de composição de espécies entre áreas, independente de valores de abundância, que nem sempre são coletados pela mesma metodologia. O plano A tem como objetivo uma função que calcule coeficientes binários de similaridade (Jaccard e Sorensen) de espécies entre localidades, a partir de um banco de dados de presença e ausência de espécies, onde colunas são as localidades e linhas são espécies, e 0 representa ausência e 1 representa presença. Os coeficientes levam em consideração critérios diferentes. Enquanto o coeficiente de Jaccard leva em consideração as espécies presentes em cada uma das localidades, e em ambas as localidades, o de Sorensen coloca um peso maior às espécies presentes em ambas as localidades. Assim, a função escolherá o índice de Jaccard, quando o número de “zeros” em cada uma das localidades for maior que 50% do numero de espécies total, pois ela não enfatiza as ausências. Quando o número de “zeros” for menor que 50% do número total de espécies, a função selecionará o índice de Sorensen.

Coeficiente de Jaccard: Sj = a/a + b + c

Coeficiente de Sorensen Ss = 2a/2a + b + c

sendo: a = nº espécies na amostra A e B b = nº espécies na amostra B mas não em A c = nº espécies na mostra A mas não em B

A função terá como argumentos: banco de dados O retorno da função será uma lista com o coeficiente escolhido pela função e o valor do coeficiente calculado.

Plano B

Comparar respostas fotossintéticas é uma ferramenta para estudos ecofisiológicos, como por exemplo, predizer respostas a mudanças climáticas. Um modo não invasivo de acessar respostas fotossintéticas de plantas e algas é o equipamento diving-PAM. Basicamente, ele emite um pulso modulado de luz saturante (I), que “zera” a taxa de transporte da clorofila a do fotossistema II, molécula responsável por iniciar a cadeia transportadora de elétrons e o processo de fotossíntese em si. Na sequência, o aparelho emite uma sequências de pulsos de intensidade conhecida de PAR (pulso de radiação actínica (A), que estimularão a clorofila, que em resposta, emitirá fluorescência. Assim, cada conjunto de medições se inicia pelo pulso Inicial (I) e uma sequência de pulsos de radiação actínica (A). O PAM absorve essa fluorescência, quantificando a resposta. Os dados então liberados pelo PAM podem ser trabalhados, a fim de serem quantificados os parâmetros fotossintéticos como rendimento, taxa de transporte de elétrons, eficiência fotossintética, ponto de saturação fótico e fotossíntese máxima.

Geralmente, utiliza-se o programa ORIGIN, com funções pré-estabelecidas e valores fixos dentro das fórmulas para calcular tais parâmetros. Mas esses cálculos são nebulosos e então, a proposta é ficar independente desse software. O plano B tem então como objetivo desenvolver uma função que devolva dois parâmetros fotossintéticos: o rendimento quântico efetivo PSII) e a taxa relativa de transporte de elétrons (rETR), a partir da planilha de leitura de dados, fornecida pelo PAM.

Para o cálculo do rendimento quântico efetivo será utilizada a fórmula de Genty et al. (1989):

PSII = (Fm'-F)/Fm' = ∆F/Fm'

onde: Fm’ é a fluorescência máxima emitida durante o pulso de luz saturante

F é a fluorescência emitida ao final do curso da taxa de transporte de elétrons.

Esse valor será calculado para cada planta (ou conjunto de medição) para a linha com o pulso saturante inicial, onde a coluna “Mark” fornece o valor “I”. Do parâmetro rendimento quântico efetivo será calculada a taxa relativa de transporte de elétrons, que será representada por uma curva com um valor de rETR em função de cada PAR emitido, calculado através da fórmula de Platt et al. (1980):

rETR = E = PSII x PAR x 0.5

cabecalho.jpg

A função terá como argumentos: planilha de acesso O retorno da função será um data.frame com o rendimento quântico efetivo (PSII) por planta (ou conjunto de medição) e a curva da taxa relativa de transporte de eletrons (rETR), em forma de plot, em rETR em função de PARxPSIIx0.5.

Genty, B.; Briantais, J.M.; & Baker, N.R. 1989. The relationship between the quantum yield of photosynthetic electron transport and quenching of chlorophyll fluorescence. Biochim. Biophys. Acta. 990: 87-92.

Platt T, Gallegos CL, Harisson WG (1980) Photohinibition of photosynthesis in natural assemblages of marine phytoplankton. Journal of Marine Research 38: 687-701.

Proposta A:

é muito parecida com algo que foi mostrado em aula e está implementada em um tutorial.

A proposta B é bastante simples pois envolve apenas o cálculo de dois parâmetros a partir dos dados base, A princípio um calculo direto e simples. Sugiro que inclua nessa função (proposta B) a possibilidade de entrada de dados de medidas repetidas (na mesma planta) e que calcule os parâmetros médios e os desvios para cada planta do rETR e do PSII . Isso inclui um grau básico de dificuldade na função. Caso essas medidas repetidas não façam sentido para os parâmetros em questão, precisa pensar em algo que inclua algum grau de dificuldade na proposta.

  1. Alexandre Adalardo de Oliveira 2015/03/27 14:05

Olá, obrigada pelas considerações. Já estou desenvolvendo a proposta B. Realmente a média e o desvio não fazem sentido, mas como podemos alterar o número de feixes de luz actínica de uma medição para outra, no aparelho (PAM), vou incluir a escolha do número de feixes como argumento da função. Além disso, já estou desenvolvendo para que as duas equações a possibilidade de calcular para mais de uma amostra. Isso envolve um grau de dificuldade, pois como os dados das amostras estão colocados um em cima do outro e não há individualização das amostras, a não ser pelo pulso inicial, a função tem que identificar onde começa termina uma amostra e onde começa termina a próxima amostra amostra. Está mais complexo agora?

 
photo		package : nenhum			R Documentation

Parâmetros fotossintéticos a partir da fluorescência da Clorofila

Description :

photo() calcula os parâmetros fotossintéticos: rendimento quântico efetivo do Fotossistema II e a taxa relativa de transporte de elétrons, 
a partir da planilha de leitura de dados, fornecida pelo fluorômetro Diving-PAM. A função retorna os valores de rendimento quântico efetivo
do Fotossistema II (rqe), os valores das taxas relativas de Transporte de Elétrons (rETR), por amostra e dois gráficos um com os valores de rqe  por amostra
e outro com as curvas das taxas de rETR por intensidade de pulso emitido (PAR).
    

Usage :

photo(x, n.pulse)

Arguments :

x 	Data.frame. Data.frame que contém os dados devolvidos pelo Diving-PAM, após o término das medições. 
n.pulse	Numeros inteiros. Número de pulsos emitidos pelo Fluorômetro Diving-PAM, para cada amostra, pré-selecionado pelo usuário. Para que possa ser plotada
	a curva de taxa de transporte de elétrons, n.pulse deve ser maior ou igual a 3.     


Details :

Comparar respostas fotossintéticas é uma ferramenta para estudos ecofisiológicos, como por exemplo, para predizer respostas a mudanças climáticas. 
Uma forma não invasiva de acessar respostas fotossintéticas de plantas e algas é através da fluorescência da Clorofila, que, dependendo do tipo de estímulo luminoso
que recebe, emite fluorescência com valores diferentes de intensidade. Quando há variações ambientais ou metabólicas, essa fluorescência varia. 
Um medidor de fluorescência muito utilizado é o Fluorômetro Diving-PAM. Ele emite um pulso de luz saturante (I) que satura a taxa de transportes de elétrons do 
fotossistema II, zerando a cadeia de transporte de elétrons. Após esse pulso, ele emite uma sequência de novos pulsos de luz actínica (A), de intensidade conhecida 
(PAR), que reinicia a cadeia. O PAM captura a resposta da clorofila, armazenando os parâmetros básicos em uma planilha. 


No. é o número do pulso emitido pelo aparelho.

Mark é qual pulso foi emitido: I é o pulso saturante, que zera o fotossistema, e A são os pulsos de luz actínica, que devolvem fluorescência relativa da clorofila. 
	Cada amostra possui um pulso I e uma sequência de pulsos A. O número total de pulsos emitidos é selecionado pelo usuário do PAM, antes de começar a medição.
	Então, se o usuário selecionou por exemplo, 9 pulsos, o PAM faz uma sequência de um I e oito A. 

H:M:S é a hora exata da medição. 

D/M/Y é o dia/mes/ano da medição

F é a Fluorescência emitida pela Clorofila

Fm é a Fluorescência Máxima emitida pela Clorofila

Yield é o rendimento quântico por pulso

ETR é a taxa de transporte de elétrons

PAR é a densidade de fluxo de fótons, em PAR (Photosynthetically Active Radiation) ou radiação fotossinteticamente ativa

Depth é a profundidade de onde foi feita a medição, já que esse aparelho pode ser utilizado em mergulhos

Batt é a bateria

Fo é a fluorescência mínima emitida pela Clorofila											

ext.T é a temperatura ambiental no momento da medição

qP é o coeficiente que descreve o quenching fotoquímico

qN é o coeficiente que descreve o quenthing não fotoquímico

NPQ é o parametro que descreve o quenthing não fotoquímico


A partir desses parâmetros, 
novos são calculados, como o Rendimento Quântico Efetivo, que utiliza a fórmula de Genty et al. (1989):

RQE = (Fm-F)/Fm 

onde: 
Fm é a fluorescência máxima emitida durante o pulso de luz saturante (linha do pulso I para a amostra, coluna 6 do data.frame)

F é a fluorescência emitida ao final do curso da taxa de transporte de elétrons (linha do último pulso A para a amostra, coluna 5 do data.frame).

Esse valor é calculado para cada amostra, que pode ser ou não a mesma planta, para a linha com o pulso saturante inicial, onde a coluna “Mark” fornece o valor “I”. 
Do parâmetro rendimento quântico efetivo é calculada a taxa relativa de transporte de elétrons, calculada através da fórmula de Platt et al. (1980):

rETR = rqe x PAR x 0.5

Value :

No console, a função photo() retorna os valores:

rqe:        Rendimento Quântico Efetivo (rqe) do Fotossistema II por amostra, a partir da fórmula de Genty et al. (1989). É um valor que varia de 0 a 1;
media.rqe:  Média dos Rendimentos Quânticos Efetivos (rqe) entre todas as amostras;
sd.rqe:     Desvio-padrão do Rendimento Quântico Efetivo entre todas as amostras; 
var.rqe:    Variância do Rendimento Quântico Efetivo de todas as amostras; 
rETR:       Matrix, cujas linhas possuem os valores da taxa de transporte de elétrons (rETR), calculados a partir da fórmula de Platt et al. (1980).

Na janela gráfica, a função retorna dois gráficos: 

graf.rqe:   Gráfico exploratório com os valores de rqe de todas as amostras. Cada valor de rqe possui uma barra, que a liga ao valor da média dos rqe; 
curve.rETR: Curva de rETR para cada amostra, em função do valor de instensidade do pulso emitido (PAR).  


Warning :

Par que a função photo() funcione, o usuário deve tomar alguns cuidados:

A planilha original devolvida pelo Diving-PAM possui duas linhas (a segunda e a terceira) que devem ser apagadas:
  'DIVING-PAM SETTINGS hora:minuto dia.MES ano											
  'MI=3;SI=8;SW=0.8;AI=5;AW=0:30;AF=1.00;G=5;D=3;EF=0.84;FO=419;CT=0:40;CI=1;LW=0:05;LI=4;ID=0:40;IW=0:20;DO=0.0;DG=1.00;LO=0;LG=1.00; 

Como o R reconhece os " ' " (apóstrofos) como sendo separação de células em um data.frame, o usuário também deve se cetificar de que eles sejam removidos, como por exemplo em Fm', 
deixando Fm. 
Caso contrário, a função não será executada corretamente.   

Além disso, a função é interrompida três vezes: 
Quando o n.pulse não é informado, a função é interrompida e uma mensagem de erro aparece: 
 			
    warning("n.pulse precisa ser informado") # mensagem de erro pelo n.pulse
  			
Quando n.pulse é menor que 3, a função é interrompida e uma mensagem de erro aparece:
  
    warning("n. pulse com valor errado. n.pulse deve ser um valor maior que 3") 
   
Se a classe do arquivo (x) não for data.frame, uma mensagem de erro aparece:
  				
    warning("os dados devem estar apresentados na forma de data.frame, conforme o exemplo fornecido") #mensagem de erro pela classe do arquivo


Author(s) :

Paola Franzan-Sanches
pfranzan@usp.br

References :

Platt, T.; Gallegos, C. L.; Harisson, W.G. 1980. Photohinibition of photosynthesis in natural assemblages of marine phytoplankton. 
	Journal of Marine Research. 38: 687-701.
Genty, B.; Briantais, J.M.; & Baker, N.R. 1989. The relationship between the quantum yield of photosynthetic electron transport and quenching 
	of chlorophyll fluorescence. Biochim. Biophys. Acta. 990: 87-92.

See Also :

class() para definição das classes 

Examples :

 # Download o arquivo "exemplo_photo.csv" e salve-o no diretório de trabalho do R, para poder rodar o exemplo abaixo.  
    
       
 # Function example
           

       photo(x= exemplo, n.pulse=9)

Baixe aqui o arquivo "exemplo_photo.csv" para o teste da função

 

###################################################################################################################
# a função photo função photo tem como argumentos o data.frame (x) e o número de pulsos selecionado pelo usuário do PAM (n.pulse). 
# n.pulse deve ser maior ou igual a 3, para que possa ser gerada uma curva de transporte de elétrons ao final da função. 


photo<-function(x, n.pulse) 
{   			# abre função 
  if(missing(n.pulse)) # se o n.pulse não for informado, aparece uma mensagem de erro
  			
    warning("n.pulse precisa ser informado") # mensagem de erro pelo n.pulse
  			
  if(n.pulse<3) # se o n.pulse for menor que 3, a curva não poderá ser gerada, e assim, aparece outra mensagem de erro
  
    warning("n. pulse com valor errado. n.pulse deve ser um valor maior que 3") # # mensagem de erro pelo n.pulse menor que 3
   
  if(class(x)!="data.frame")	# se a classe do arquivo (x) não for data.frame, aparece a mensagem de erro:
  				
    warning("os dados devem estar apresentados na forma de data.frame, conforme o exemplo fornecido") #mensagem de erro pela classe do arquivo

# Antes de rodar a função, os NA ou células em branco devem ser excluidos. O Diving PAM devolve uma planilha que possui a indicação de qual amostra a análise está
#sendo feita, em uma linha entre as amostras, mas que não preenche as colunas. Pedindo para excluir os NA, o R exclui linhas onde isso ocorre, então não compromete 
#a amostra e o usuário  não precisa ficarexcluindo uma a uma antes de começar a análise.  


  x<-na.omit(x)	# na.omit exclui os NA dentro do data.frame "x"			
 
# O número de amostras (n.sample) não precisa ser informado pelo usuário, pois ele pode ser calculado através do número total de linhas, divido pelo numero de pulsos fornecidos.
# Assim n.sample é igual ao número de linhas do data.frame dividido pelo número de pulsos. 
# Isso porque cada amostra tem o mesmo número de pulsos e quando acaba a medição de uma amostra, começa a da outra, na sequência. 

  n.sample<-nrow(x)/n.pulse 	# n.sample é o número de amostras 
  
# Apesar do número de amostras poder ser deduzido ou calculado, é necessário indicar ao R com qual constante uma amostra varia em relação à outra, para tornar diretos os cálculos. 
# Assim, k é uma constante que indica em qual amostra está sendo realizada a análise.
# Isso porque cada amostra possui o seu pulso I e seus sequenciais pulsos A. Pulsos I + número de pulsos A = n.pulse. 

# k é um vetor que possui todos os valores das amostras. Ou seja, uma sequência que vai de 1 até o número total de amostras, aumentando de um em um. 
# Ou seja, cada amostra possui seu respectivo valor em k, sendo a primeira amostra k = 1, a segunda amostra k =2 e a última amostra k= n.sample.   
  
  k<-seq(1,n.sample, by= 1)	 # k é uma constante que indica qual é a amostra, para a análise. 
  
# Para que o cálculo de rqe a partir da fórmula rqe = (Fm-F)/Fm temos que: 

# Fm é a fluorescência máxima emitida durante o pulso de luz saturante, quando o pulso da coluna Mark (coluna 2) for igual a "I". Ou seja, valor de Fm (coluna 6), quando pulso é "I", na coluna 2, para todas as amostras. Um valor de linha e coluna no data.frame. 
# F é a fluorescência emitida ao final do curso da taxa de transporte de elétrons, que ocorre quando o pulso da coluna Mark for igual ao último da "A" da amostra em análise. Ou seja, valor de F (coluna 5), quando pulso "A", na coluna 2, for o último da amostra, para todas as amostras. Um valor de linha e coluna no data.frame.

# Para que o cálculo seja então feito deforma direta, sem que o usuário indique qual é a linha onde está Fm e o F para cada uma das amostras, essas linhas serão chamadas de "a" e "b", respectivamente.	
# Assim, consideramos "a" todas as linhas onde estão os pulsos Ionizantes (I), para cada amostra. 
# E "b" todas as linhas onde estão os últimos pulsos "A", para cada amostra.

# rqe<-(x[a,6]-x[b,5])/x[a,6]    


# Como "a" é o conjunto das linhas do primeiro pulso para cada amostra, "a" vai ter um valor para cada um dos valores de "k", aumentando com relação ao número de pulsos.
# De forma que: para qualquer amostra, Fm está na linha = 1+ (k-1)*n.pulse (informado). Isso porque é a primeira linha, após todos os pulsos dasamostras anteriores. "K" é assim, substituído pelo valor da amostra, dentro da sequência de k. 
# Para a amostra 1, "k" é substituído pelo primeiro valor de "k", ou seja: 1+ (1-1)*n.pulse= 1, ou seja, linha um. 
# Para a amostra 2, "k" é substituído pelo segundo valor da sequência "k", ou seja, 2 e assim, a, para a segunda amostra = 1+(2-1)*n.pulse= 1+1*n.pulse, ou seja uma linha abaixo do número de pulsos da amostra anterior.


  a=1 + (k-1)*n.pulse 	# a é o conjunto de linhas onde estão os pulsos Ionizantes (I), para todas as amostras    
  
# Como "b" é o conjunto das linhas do último pulso de "A", para cada amostra, ele também vai ter um valor para cada um dos valores de "k", e segue a mesma sequência de "a", variando em relação a (k-1)*n.pulse.
# De forma que: para qualquer amostra, F está na linha = n.pulse +(k-1)*n.pulse. Isso porque já foram todos os pulsos (n.pulse) para essa amostra + todos os pulsos que já foram para as amostras anteriores. 
# Para a amostra 1 = n.pulse+ (1-1)*n.pulse = linha que tem o mesmo valor do número de pulsos. 
# Para a amostra 2 = n.pulse +(2-1)*n.pulse, ou seja= número igual ao número de pulsos + o número de pulsos que ja foram na amostra 1, ou seja, na linha = n.pulse + 1 vez o número de pulsos.  
# Para a amostra 3 = n.pulse +(3-1)*n.pulse, ou seja= número igual ao número de pulsos + o número de pulsos que ja foram nas amostras 1 e 2, ou seja, na linha = n.pulse + 2 vez o número de pulsos. 
  
  b=n.pulse+(k-1)*n.pulse 	# b é o conjunto de linhas onde está a última fluorescência F, para todas as amostras 
  
  rqe<-(x[a,6]-x[b,5])/x[a,6]   # rqe é possui os valores de rqe calculados para cada uma das amostras 
  
# Como existem então vários valores de rqe, podemos calcular a média, desvio padrão e variância para todos eles.

  media.rqe<-mean(rqe)    # média de todos os valores de rqe 
  
  desv.rqe<-sd(rqe)       # desvio padrão de todos os valores de rqe
  
  var.rqe<-var(rqe)       # variância de todos os valores de rqe
  
# Para fazer uma análise exploratória gráfica, a função plota os valores de cada uma das amostras e mostra sua diferença com relação a média das amostras.

  par(mfrow=c(1,2))     # necessário colocar que serão apresentados dois gráficos lado a lado, em uma linha, pois a seguir a função plotará uma curva. 
  
# gráfico será um plot dos valores calculados de rqe, onde o título do eixo y é "Rendimento Quântico Efetivo", o título do eixo x é "Amostras", o intervalo do eixo y é de 0 a 1.0, pois os valores de rqe não serão maiores que 1, e o título do gáfico é "Rendimento Quântico \n Efetivo", colocado em duas linhas. 


  graf.rqe<-plot(rqe, ylab= "Rendimento Quântico Efetivo", xlab= "Amostras",ylim= c(0,1.0), main= "Rendimento Quântico \n Efetivo") # gráfico exploratório de rqe

# para colocar um segmento entre as diferenças entre os valores obtidos de rqe e a média das amostras:
# a função segments considera como x0 o intervalo onde serão acrescentados os segmentos de reta;
# y0 o valor de rqe para cada amostras;
# x1 = x0, pois não há variação no eixo x;
# y1 o valor referente à diferença entre o ponto onde está y0 e a média das amostras


  segments(x0= 1:n.sample, y0=rqe, x1=1:n.sample, y1=rqe+(media.rqe- rqe))  # função segments acrescenta os segmentos de retas ao gráfico
  axis(1, 1:n.sample, k)    # axis coloca os valores relativos no eixeo x: no primeiro quadrante, valores que vão de 1 té o número total de amostras, e os valores colocados seguem a sequência de k. 
  points(x=1:n.sample, y=rqe+(media.rqe- rqe), pch="-", cex=1.5)  # a função points coloca pontos e nesse caso no intervalo de 1 ao número total de amostras, no local do ponto final do segmeto de reta, a forma do ponto é um traço "-" e seu tamanho é meia vez maior que o tamanho do default. 
  

# O cálculo da taxa relativa de transporte de elétrons (rETR) será feito através da fórmula: rETR = E = rqe x PAR x 0.5  (Platt et al. 1980).
# PAR é a unidade de intensidade ds pulsos emitidos. 
  
  PAR<-(x[1:n.pulse,9])  	 # o Par é um conjunto de valores que estão entre as linhas 1 até o número total de pulsos, na coluna 9. Isso porque o PAR se mantém igual para todas as amostras. 
  
# Cada valor de rqe deverá ser multiplicado por 0.5 e por cada um dos valores de PAR. 
# Assim, para isso, será formada uma matriz (rETR) que possua número de linhas = número de amostras e o número de colunas = número de pulsos, com valores de NA, que serão substituídos no ciclo criado com a função for. 

  rETR<-matrix(NA,ncol=n.pulse, nrow=n.sample,byrow=T)   # matriz  rETR que receberá os resultados dos cálculos de rETR por amostra, do ciclo, preenchendo linha a linha.  
  
  for(i in 1:n.sample) 	# o ciclo começará na primeira linha e seguirá até a última linha, que corresponde ao número de amostras. 
  {					# abre o ciclo	
    for(j in 1:n.pulse)		# o ciclo passará por todas as colunas, começando da primeira coluna até a última coluna, que corresponde ao número de pulsos
      rETR[i,j]<-rqe[i]*PAR[j]*0.5	# a fórmula que será repetida é a de rETR para cada linha e coluna = valor de rqe nas linhas (cada amostra é uma linha) vezes o valor de PAR nas colunas (cada coluna tem um valor de PAR) vezes 0.5
  }  					# fecha o ciclo
  rETR 	# matriz resultado do ciclo é o valor de rETR
  
# Da matriz de valores de rETR gerada, será gerado um gráfico de dispersão de rETR em função do PAR, por amostra. Assim, cada amostra terá a sua curva. Para isso, plotaremos a primeira curva, para a primeira amostra, para que as demais sejam reproduzidas no ciclo gerado abaixo.

  curve.rETR<-plot(PAR,rETR[1,], ylab="rETR", main="Curva da taxa de transporte de elétrons rETR\n por pulso de luz emitida PAR", ylim= c(0, 1000))	# Assim, a função plot será aplicada para y= PAR, x= rETR[1,] (na primeira linha, em todas as colunas), título do eixo y = ylab="rETR" , título do gráfico = main="Curva da taxa de transporte de elétrons rETR\n por pulso de luz emitida PAR",o intervalo do eixo y é 0 a 1000.
  curve.rETR<-lines(PAR, rETR[1,])	# a função lines coloca a linha que liga os pontos gerados no plot, para a amostra 1 (linha 1, todas as colunas). 
  curve.rETR<-points (PAR, rETR[1,])	# a função points coloca os pontos  referentes aos valores de rETR, para a amostra 1 (linha 1, todas as colunas). 

# Para que cada linha da matriz tenha sua curva de rETR respectiva, um novo ciclo repetirá a plotagem dos pontos e linhas. 

  for (i in 2:nrow(rETR) )	# o ciclo começará na segunda linha da matriz, até a número total de linhas (nrow), da matrix rETR, pois a primeira linha já foi plotada acima. 
  {				# abre ciclo
    par(new=TRUE)	# para que todas as linhas apareçam juntas na mesma representação gráficas, usamos a função par(new=TRUE)
    lines(PAR, rETR[i,]) 	# as curvas de rETR em função de PAR serão plotadas no "plot" inicial, para todas as linhas da matriz rETR
    points(PAR, rETR[i,])	# os pontos de rETR em função de PAR serão plotados no "plot" inicial, para todas as linhas da matriz rETR
  }				# fecha o ciclo
  
  curve.rETR			# resultado é um gráfico de dispersão com todas as curvas de rETR, geradas a partir da matriz rETR

#A função retorna uma lista com 7 objetos.
  
 return list (rqe, media.rqe, desv.rqe, var.rqe, graf.rqe, rETR, curve.rETR)  #a função retorna: valores de rqe para todas as amostras presentes no data.frame, a média de rqe, o desvio e rqe, a variância de rqe, um gráfico de rqe por amostra, uma matrix com os valores de rETR calculados e um gráfico com as curvas de rTER
}  
05_curso_antigo/r2015/alunos/trabalho_final/pfranzan/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)