Zeitunterschied berechnenIch habe eine Reihe von Daten, im Skript nenne ich es RTDT.Sie enthält die Spalten Time, Sub_name und Substrate_ID.Ich versuche, den Zeitunterschied zwischen dem ersten Mal und dem letzten Mal eindeutig zu berechnen Sub_name und Substrate_ID werden aufgelistet. Sie werden nacheinander für jeden eindeutigen Sub_name und Substrate_ID aufgelistet.Mein Code ist wie folgt:
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 );
)
);
Als Ergebnis bekomme ich nur ".".Ist mein Problem mit dem Format der Zeitspalte? Ich denke, die if () -Anweisung tritt nie auf, weil ich keine Ergebnisse oder Fehler erhalte.
Jede Hilfe wäre willkommen.Vielen Dank
Datentabelle ist beigefügt.
Re: Zeitunterschied berechnenDu bist ein wahres Phänomen.Da ich kein Softwareentwickler bin, habe ich ein paar Stunden damit verbracht, das zu tun, was ich getan habe, und Sie haben es mit einer einzigen Gleichung gelöst.Umwerfend.Danke dir.
Re: Zeitunterschied berechnenSie scheinen ein Syntaxproblem zu haben.Sie verwenden () zum Subskriptieren, wo Sie [] verwenden sollten.Auch du scheinst.
Ich denke, die einzige Formel, die Sie für Ihre Spalte namens Runtime benötigen, ist:
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 ) )
);