<div dir="ltr">Pessoal, consegui resolver aqui com uma pesquisa mais aprofundada. Segue o código de leitura dos picos e vales para a amostra utilizada:<div><br></div><div><div>maximo = data.frame()</div><div>for(i in 1:length(amostra)){</div><div>      if( max(amostra[i+1], amostra[i-1]) < amostra[i])</div><div>      maximo = rbind(maximo, data.frame(print(amostra[i])))</div><div>  }</div><div><br></div><div>#LEITURA DOS MINIMOS</div><div>minimo = data.frame()</div><div>for(i in 1:length(amostra)){</div><div>      if( min(amostra[i+1], amostra[i-1]) > amostra[i])</div><div>      minimo = rbind(minimo, data.frame(print(amostra[i])))</div><div>  }</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr">Atenciosamente, José Lucas.<div><br></div></div></div></div>
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Message: 1<br>
Date: Sat, 19 Dec 2015 19:04:52 -0200<br>
From: José Lucas Safanelli <<a href="mailto:zecojls@gmail.com">zecojls@gmail.com</a>><br>
To: <a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a><br>
Subject: [R-br] Loop para leitura de picos<br>
Message-ID:<br>
        <<a href="mailto:CADni8G5B-N9M4LqpZTVkAOgoSkTO56aK0icdg-PjVf0Us8PcFQ@mail.gmail.com">CADni8G5B-N9M4LqpZTVkAOgoSkTO56aK0icdg-PjVf0Us8PcFQ@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Boa tarde, estou com o seguinte caso:<br>
<br>
DADO:<br>
amostra = c(49.936157, 48.133488, 45.775238, 43.229397, 40.021607,<br>
35.927558, 31.365912, 26.849848, 23.233177, 20.770278, 18.572067,<br>
15.590341, 11.936978, 8.478520, 5.572115, 3.272254, 1.642041, 0.999997,<br>
1.473886, 2.616919, 4.169691, 6.464019, 9.790810, 13.820101, 17.978423,<br>
21.674281, 24.065947, 24.875069, 24.590811, 23.620608, 22.240339,<br>
20.676521, 19.088229, 17.689105, 16.720912, 16.358739, 16.792281,<br>
18.321545, 21.053896, 24.777756, 29.121638, 33.551339, 37.628649,<br>
41.272700, 44.405581, 46.899820, 48.602420, 49.253714, 48.816692,<br>
47.380737, 44.920718)<br>
wavelength = seq(400, 450, by=1)<br>
plot(wavelenght, amostra, xlab  = "Comp. Onda (nm)", ylab = 'Valor', type =<br>
"l")<br>
axis(side=1, at=seq(400, 450, by=5))<br>
<br>
PROBLEMA:<br>
Estou tentando ler os valores mínimos e máximos de cada pico para ter o<br>
valor da amplitude.<br>
Consigo fazer isso delimitando o intervalo de comp. de ondas da posição do<br>
pico, mas é muito laborioso<br>
EX: max(amostra[,1:20]) e min(amostraamostra[,1:20]). Amplitude seria a<br>
diferença deles.<br>
<br>
Para várias amostras tenho utilizado a função apply para dentro da linha,<br>
PORÉM decorrente da heterogeneidade das amostras, as posições variam<br>
causando erro de leitura e modelagem.<br>
<br>
Outro fato é que existem inúmeros picos dentro de uma faixa de interesse, e<br>
delimitando visualmente torna-se inviável. Para isso, estou tentando criar<br>
uma rotina que leia todos os picos dentro da faixa de interesse, para que<br>
possa utiliza-los diferentemente nas modelagens.<br>
<br>
Tentei o código abaixo, mas me retorna o erro que o argumento é de<br>
comprimento zero!<br>
<br>
for(i in 1:length(amostra)){<br>
      if((amostra[i+1] > amostra[i])&(amostra[i-1]>amostra[i]))<br>
       print(amostra[i])<br>
      }<br>
<br>
(Error in if ((amostra[i + 1] > amostra[i]) & (amostra[i - 1] ><br>
amostra[i])) print(amostra[i]) : argument is of length zero)<br>
<br>
Um resultado que observei foi de do seguinte código, somente com uma<br>
condição colocada nele:<br>
<br>
for(i in 1:length(amostra)){<br>
      if(amostra[i+1] > amostra[i])<br>
       print(amostra[i])<br>
  }<br>
<br>
Nesse código, consegue-se ler os valores crescentes dos picos,<br>
desconsiderando os valores do objeto quando os valores são decrescentes. A<br>
partir dele que tentei colocar duas condições depois do IF para que ele<br>
lê-se somente os valores mínimos, mas sem sucesso.<br>
<br>
Portanto, peço ajuda para confecção de um código que faça a leitura dos min<br>
e max, ou amplitude, de todos os picos da amostra, retornando em um<br>
objeto/dataframe para modelagem.<br>
<br>
Grato pela atenção! José Lucas.<br>
-------------- Próxima Parte ----------<br>
Um anexo em HTML foi limpo...<br>
URL: <<a href="http://listas.inf.ufpr.br/pipermail/r-br/attachments/20151219/add2cc3b/attachment-0001.html" rel="noreferrer" target="_blank">http://listas.inf.ufpr.br/pipermail/r-br/attachments/20151219/add2cc3b/attachment-0001.html</a>><br></blockquote></div></div></div></div>