Tuesday 29 August 2017

Vetor Médio Em Movimento R


Eu sou um novato e estou tendo muitos problemas para fazer algo que provavelmente é muito simples. Eu tenho um grande conjunto de dados dividido em grupos por código de país, e eu quero fazer uma média móvel de 3 meses de um índice de preços, por país, e depois colocá-lo em uma nova coluna que corresponde ao mês apropriado. Eu tenho tentado usar rollmean assim sem sucesso (código e mensagens de erro abaixo): qualquer ajuda seria muito apreciada perguntou Mar 10 12 às 6:42 Na sua primeira tentativa, sua função não usa seu argumento x e sempre retorna O mesmo (um vetor com o tamanho errado). Além disso, o primeiro argumento, deve ser um vetor. Por fim, ela retorna uma lista de vetores: você não pode colocar o resultado diretamente em um data. frame. No seu segundo exemplo, o terceiro argumento de plyr deve ser uma função, não uma expressão. Se você quiser usar uma expressão, você pode usar resumir ou transformar como uma função (resumir retorna uma data. frame de 1 linha para cada valor de ccode. Enquanto a transformação mantém o número de linhas inalteradas) e colocar as expressões como argumentos adicionais . Respondeu 10 de março 12 em 7: 03 Tenho um vetor de valores que eu gostaria de denunciar a média em janelas ao longo de um slide menor. Por exemplo, para um vetor dos seguintes valores: Um tamanho de janela de 3 e um slide de 2 faria o seguinte: E retornar um vetor desses valores: Existe uma função simples que fará isso por mim Se ele também retornasse o Os índices da janela começam que seria um bônus adicional. Neste exemplo, seria 1,3,5 mbq, o que faz uma forte suposição de que a observação é 0. Eu estava refletindo esse ponto e T-Burns está fazendo a mesma suposição (um não observado 0). Eu preferiria talvez atacar com NA e passar no argumento na. rm TRUE para significar. A resposta ganhou o mesmo que o que o OP solicitou, mas parece mais útil. Eu vou editar minha resposta para incluir isso. Ndash Gavin Simpson 25 de setembro 10 às 8:59 Eu posso fazer isso facilmente em Matlab e pato enquanto você me derruba: como efeito colateral, idx1 é o índice do elemento na soma. Tenho certeza de que isso pode ser facilmente traduzido para R. O idioma primeiro: saltar: o último em Matlab dá a matriz primeiro, primeiro, primeiro, primeiro. Primeiro n salto, onde o último elemento na matriz não é maior do que o último. Editar. Eu omitia a parte de média (divida por windowsize). Também não foi para mim, mas, como mencionado por você mesmo, a pré-alocação do objeto resultante ajudará com a questão da velocidade. Um truque, se você não sabe, ou é tedioso determinar o tamanho do objeto de resultado que você precisa. Aloque algo razoável, talvez preenchendo com NA. Em seguida, preencha com o seu loop, mas adicione um cheque que, se você estiver se aproximando do limite do objeto pré-atribuído, aloque outro pedaço grande e continue enchendo. Ndash Gavin Simpson 25 de setembro 10 às 9:43 mbq Velocidade dos resultados, embora importante, não é a única consideração. Em vez de ter que reinventar o tempo e lidar com todos os índices, etc nas soluções personalizadas, o one-linear que é rollapply é muito mais fácil de entender e de cumprir a intenção de. Além disso, rollapply provavelmente terá tido muitos outros globos oculares que verificam seu código do que algo que eu poderia preparar uma tarde. Cavalos para cursos. Ndash Gavin Simpson 25 de setembro 10 às 9: 45 Médias móveis em R Pelo melhor de meu conhecimento, R não possui uma função incorporada para calcular as médias móveis. Usando a função de filtro, no entanto, podemos escrever uma função curta para médias móveis: podemos então usar a função em qualquer dado: mav (dados) ou mav (dados, 11) se quisermos especificar um número diferente de pontos de dados Do que o traçado padrão 5 funciona como esperado: plot (mav (data)). Além do número de pontos de dados sobre os quais a média, também podemos alterar o argumento lateral das funções de filtro: sides2 usa ambos os lados, sides1 usa apenas valores passados. Compartilhe isto: Publicar navegação Comentar navegação Comentar navegação

No comments:

Post a Comment