[R-br] Soma com intervalo definido dentro de um loop
Jaildo Rocha
j.vieirarocha em gmail.com
Segunda Março 7 10:56:38 BRT 2016
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.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160307/c24b8942/attachment.html>
Mais detalhes sobre a lista de discussão R-br