Zeitvariable erstellen
Okay. Wenn Sie also nur den ausgewählten Bereich betrachten. Ich würde wollen:
Nback # = 1, Dauer = 14303912, Kumulative Dauer = 0
Nback # = 2 , Dauer = 14305914, kumulierte Dauer = 2002
Nback # = 3 , Dauer = 14307916, Kumulative Dauer = 4004
Nback # = 4 , Dauer = 14309965, kumulative Dauer = 6053
Nback # = 5 , Dauer = 14312015, Kumulative Dauer = 8103
Nback # = 6 , Dauer = 14314051, kumulative Dauer = 10139
Ich muss diese letzte Kolumne als Zeitmaßstab erstellen. Jede Anleitung wäre sehr dankbar.
Re: Zeitvariable erstellenWenn Sie diese kleine Änderung vornehmen, wird für meine neue Variable immer noch dieselbe Ausgabe erzeugt.
Re: Zeitvariable erstellenVielleicht möchten Sie ab der Endzeit der ersten Zeile in jeder Periode zu zählen beginnen?

Re: Zeitvariable erstellenDas funktioniert also technisch. Es gibt mir Werte, aber es ruht nicht am Anfang jeder Prüfung. Dies ist ein wichtiger Schritt in diesem Prozess, damit ich die einzelnen Studien miteinander vergleichen kann. Das aktuelle Skript ermöglicht es mir, Überstunden generell zu vergleichen, nicht in jedem einzelnen Versuch. Deshalb möchte ich, dass jeder neue Versuch um 0 Uhr beginnt.Re: Zeitvariable erstellenSie können die Zeitdauer zusammenfassen, die Zeit zwischen den Zeilen kann jedoch verpasst werden. Meiner Meinung nach ist die Verwendung der Start- und Endzeiten (Nback Start und Nback Stop und summary_image_end) ziemlich knapp. Die Formel sollte nur wie folgt aussehen. Sie verwenden * entweder * die blauen Spalten (wenn Sie sich für summary_image_end interessieren) oder die roten Spalten (wenn Sie sich für Lag1 interessieren).

Re: Zeitvariable erstellenBeim Betrachten der Daten, die ich habe, wurde mir klar, dass ich eine Spalte "Nback Duration" habe. Ich habe mich gefragt, ob es mit dieser Spalte und der Lag1-Spalte einen einfacheren Weg zum gewünschten Endergebnis gibt.
Re: Zeitvariable erstellenHier ist eine Möglichkeit, dies mit nur Spaltenformeln zu tun. Ich bin mir nicht sicher, welche Spalte Sie verwenden, um die Zeitrücksetzung anzuzeigen
- Eine Methode, entweder aus einer Spalte, deren Werte sich für jede neue Gruppe ändern, und
- Eine auf einer Spalte basierende Methode, die ein Zurücksetzen in der Zeit anzeigt.
Names default to here ( 1 );
//Table with data similar to yours
dt = New Table( "Data",
Add Rows( 40 ),
New Column( "Space", Numeric, "Continuous",
Format( "Best", 12 ),
Formula( Round( Random Uniform( 1, 5 ), 0 ) )
),
New Column( "Duration", Numeric, "Continuous",
Format( "Best", 12 ),
Formula( Round( Random Uniform( 1998, 2002 ), 0 ) )
),
New Column( "Start", Numeric, "Continuous",
Format( "Best", 12 ),
Formula( If( Row() == 1, :Space, :Space + Lag( :Start, 1 ) + Lag( :Duration, 1 ) ) )
),
New Column( "End", Numeric, "Continuous",
Format( "Best", 12 ),
Formula( :Start + :Duration )
),
New Column( "Period Indication", Character, "Nominal",
Formula( If( Row() < 15, "One", "Two" ) )
),
New Column( "Indication of Time Reset Pulse", Numeric, "Nominal",
Formula( If( Row() == 10, 1, . ) )
)
);
//New Column - subtract the current end time from the first end time in
//the group. Use this if the column :summary_image_end" tells you when
//to start a new group
dt << New Column( "Time In Group", Numeric, "Continuous",
Format( "Best", 12 ),
Formula( :End - Col Min( :Start, :Period Indication ) )
);
//Make a New Column indicating the period for a pulse signal, use this if
//the column Lag1 tells you when to start a new group
dt << New Column( "Period Indication from Pulse", Numeric, "Nominal",
Format( "Best", 12 ),
Formula(
If(
Row() == 1,
1,
Lag( :Period Indication from Pulse, 1 ) +
If(
Is Missing( :Indication of Time Reset Pulse ),
0,
1
)
)
)
);
//Once the group column is made then calculate the duration
dt << New Column( "Time In Group - Pulse", Numeric, "Continuous",
Format( "Best", 12 ),
Formula( :End - Col Min( :Start, :Period Indication from Pulse ) )
);Re: Zeitvariable erstellenDieses Skript könnte das sein, was Sie brauchen. Datensatz als Beleg.
dt = Current Data Table();
//dt << New Column( "Delta", numeric );
dt << New Column( "Cumulative", numeric );
dt << Sort( By( :Category, :Time ), Order( Ascending, Ascending ), Replace table );
For( i = 1, i <= N Rows( dt ), i++,
If( :Time[i] == Min( :Time[dt << get rows where( :Category == :Category[i] )] ),
//dt:Delta[i] = 0;
dt:Cumulative[i] = 0;
,
//dt:Delta[i] = dt:Time[i] - dt:Time[i - 1];
dt:Cumulative[i] = dt:Cumulative[i-1]+ (dt:Time[i] - dt:Time[i - 1]);
)
);