[R-br] Soma com intervalo definido dentro de um loop

Yury Duarte yurynepomuceno em gmail.com
Segunda Março 7 15:02:09 BRT 2016


Boa tarde colegas!

Gostaria de agradece-los pela ajuda!
Jaildo, adotei a saída sugerida utilizando o pacote "zoo" apesar de ambas
terem funcionado da mesma forma.
Leonardo, não tinham dados faltando no arquivo, com um total de 3205
linhas. Tentei o comando sugerido (cumsum()), mas não consegui sucesso na
aplicação dele.

Mais uma vez, agradeço a todos pelas colaborações!

Att

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP

Em 7 de março de 2016 10:56, Jaildo Rocha <j.vieirarocha em gmail.com>
escreveu:

> Yuri Duarte,
>
> Apesar de outras soluções possíveis, acredito que a mais simples seja
> através da função “rollsum” do pacote “zoo”, como neste exemplo:
>
> require(zoo)
>
> ##
> # Vetor qualquer
> VA        <- rnorm(n = 200,mean = 100,sd = 1)
> # Soma móvel de quarenta valores
> MovingSum <- rollsum(VA,40)
> ##
>
> Caso seja de sua preferência realizar a soma com o loop mesmo:
>
> ##
> # Soma loop
> # quantidade de valores a serem somados
> janela <- 40
>
> # Criação do vetor de resultados
> Msum <- c()
>
> for(i in 1:(length(VA)-janela+1)){
>   # vetor com os valores de interesse
>   A <- VA[i:(i+39)]
>   Msum[i] <- sum(A)
> }
> ##
>
> Espero que ter entendido a sua dúvida e  ajudado!
>
> Att,
>
> -------
> Jaildo Rocha
> Mestrando pelo Programa Pós Graduação em Saneamento Meio Ambiente e
> Recursos  Hídricos –  UFMG
>
>
> Em 07/03/2016, à(s) 08:41, Yury Duarte <yurynepomuceno em gmail.com>
> escreveu:
>
> Bom dia colegas de R!
>
> Preciso somar uma serie de dados com tamanho definido igual a "a"
> repetições.
> Tentei usar o comando for() para realizar essa tarefa e somar os valores
> de x1 até xa; x2 até x(a+1) e assim sucessivamente até xn.
>
> Usando a estrutura básica da função soma fora do comando for não tive
> problemas:
> sum(Nasa$PP.Liquida[1:140])
>
> Quando tentei aplicar esse formato no comando for não consegui ter sucesso:
> PP = for(i in Nasa$PP.Liquida){
>   sum(Nasa$PP.Liquida[i:(i+139)])
> }
>
> Acredito que possa ser um problema de entendimento conceitual do
> funcionamento desse comando.
> Alguém poderia me ajudar nessa questão?
>
> Desde já, agradeço a todos pelo apoio!
>
> Att
>
> Yury Duarte
> Engenheiro Agrônomo - ESALQ/USP
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160307/b92f83cd/attachment.html>


Mais detalhes sobre a lista de discussão R-br