Calculer le décalage horaireJ'ai un ensemble de données, dans le script je l'appelle RTDT.Il contient les colonnes Time, Sub_name et Substrate_ID.J'essaie de calculer la différence de temps entre la première et la dernière fois qu'un unique Sub_name et Substrate_ID sont répertoriés. Ils seront répertoriés séquentiellement pour chaque Sub_name et Substrate_ID uniques.Mon code est le suivant :
RTDT << New Column( "Runtime", Numeric, "Continuous", Format( "h:m:s", 11, 0 ), Input Format( "h:m:s", 0 ), );
SubNameFirst = RTDT:Sub_name( 1 );
SNFirst = RTDT:Substrate_ID( 1 );
TimeFirst = RTDT:Time( 1 );
EOL = N Rows( RTDT );
For( i = 1, i <= EOL, i++,
If( SubNameFirst != RTDT:Sub_name( i ) || SNFirst != RTDT:Substrate_ID( i ),
Formula( RTDT:Runtime( i - 1 ) = (RTDT:Time( i - 1 ) - TimeFirst) );
SubNameFirst = RTDT:Sub_name( i );
SNFirst = RTDT:Substrate_ID( i );
TimeFirst = RTDT:Time( i );
)
);
Tout ce que j'obtiens pour les résultats sont ".".Mon problème est-il lié au format de la colonne d'heure ? Je pense que l'instruction if() ne se produit jamais car je n'obtiens aucun résultat ni erreur.
Toute aide serait appréciée.Merci
Le tableau de données est joint.
Re : calculer le décalage horaireTu es un vrai phénomène.N'étant pas ingénieur logiciel, j'ai passé quelques heures à essayer de faire ce que j'ai fait et vous l'avez résolu avec une seule équation.Étonnante.Merci.
Re : calculer le décalage horaireVous semblez avoir un problème de syntaxe.Vous utilisez () pour l'indice, où vous devriez utiliser [].Aussi, vous semblez.
Je pense que la seule formule dont vous avez besoin pour votre colonne appelée Runtime est :
Col Max( :Time, :Sub_name, :Substrate_ID )
-Col Min( :Time, :Sub_name, :Substrate_ID )
RTDT << New Column( "Runtime",
Numeric,
"Continuous",
Format( "h:m:s", 11, 0 ),
Input Format( "h:m:s", 0 ),
formula( Col Max( :Time, :Sub_name, :Substrate_ID ) - Col Min( :Time, :Sub_name, :Substrate_ID ) )
);