Skip to content

Commit

Permalink
Adicionado método diferencaValores para calcular a diferença com os v…
Browse files Browse the repository at this point in the history
…alores anteriores de um Vectorization.Vector
  • Loading branch information
WilliamJardim committed Jan 1, 2025
1 parent 6b8d0a2 commit 5e91a0b
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions src/Vector.js
Original file line number Diff line number Diff line change
Expand Up @@ -2291,6 +2291,45 @@ window.Vectorization.Vector = function( config=[], classConfig={} ){
return Vectorization.Math.correlation( Vectorization.Vector(context.raw()), outroVector );
}

/**
* Calcula as diferenças com os valores anteriores:
*
* Para cada número no Vector, vai subtrair ele com um número anterior(ou melhor dizendo com o número cujo índice seja "indiceNumero - quantidadeElementosAtraz", caso exista. Se não existir, ele coloca um valor inválido.
* Voce pode incluir um parâmetro adicional que permite fazer uma subtração acumulada
*
* @param {number} quantidadeElementosAtraz
* @param {string} acumulacao
*
* @returns {Vectorization.Vector}
*/
context.diferencaValores = function( quantidadeElementosAtraz, acumulacao="nenhuma" ){
if( !quantidadeElementosAtraz ){
throw 'Voce precisa dizer quantos elementos atraz de cada elemento voce quer usar!';
}

let vetorResultado = Vectorization.Vector([]);

context.forEach(function(indiceAtual, valorAtual, contextoEste){

const indiceAnterior = indiceAtual - Number(quantidadeElementosAtraz);
const valorAnterior = context.lerIndice( indiceAnterior );

if( valorAnterior != undefined ) {
const subtracaoFeita = valorAtual - valorAnterior;
const subtracaoTratada = context.usarEscalares == true ? Vectorization.Scalar(subtracaoFeita) : subtracaoFeita;

vetorResultado.adicionarElemento( subtracaoTratada );

//Caso não exista
}else{
vetorResultado.adicionarElemento( context.usarEscalares == true ? Vectorization.Scalar( NaN ) : NaN );
}

});

return vetorResultado;
}

/**
* Método que converte este Vectorization.Vector para um Vectorization.Vector avançado, onde cada elemento dentro do mesmo é um Vectorization.Scalar
*/
Expand Down

0 comments on commit 5e91a0b

Please sign in to comment.