Hallo,
Ich habe viele Methoden ausprobiert, um bestimmte Zeilen mit PM#=2 und Logistic#=1 in meiner vorgefilterten Tabelle auszuwählen, aber ich erhalte entweder die Meldung „Sende erwartet skriptfähiges Objekt“ oder „Skriptfähig[]“ und dann Skriptbeendigung oder eine Endlosschleife.Kann mir bitte jemand helfen, was an der Syntax unpassend ist, dass ich die Zeilenauswahl nicht programmieren kann?Danke!
lamstationfile=Pick File("choose file","$Documents" );
dt=Open(lamstationfile,
Import Settings(End Of Field( Tab ),Scan Whole File( 1 ), Column Names Start(7 ),Data Starts( 8),));
dt = Current Data Table();
//find data rows
w=NRow(dt);
dt<<SELECT where="">(d-1));
dt2=dt<<SUBSET>(d-1))<<DELETE rows=""></DELETE></SUBSET></SELECT>
Ich dachte, dass @uday_guntupalli Der Code sollte funktionieren, in 13.2.1 jedoch nicht (seltsam).Durch die Verwendung von As Column() anstelle von Column() konnte Ihr spezifischer Code jedoch funktionieren
Names Default To Here( 1 );
dt3 = Open( "$SAMPLE_DATA/Big Class.jmp" );
logis = "55";
clos = "Height";
dt3 << Select Where( As Column( dt3, clos ) == Num( logis ) );
dt3 <Betreff: Scriptable[] oder „Senden erwartet skriptfähiges Objekt“Entschuldigung, ich hätte klarer sein sollen.Das Problem, das ich habe, ist das Ende meines Codes, nachdem ich eine dritte Datentabelle dt3 erstellt habe. Alles vor der letzten aktiven Codezeile funktioniert einwandfrei [Zeilen und Spalten in der ersten Datentabelle dt abrufen, die Eingaben PM#=2 und Logistic#=1 setzen sind in Ordnung].Ich kann einfach nicht mehrere Zeilen in dt3 auswählen, in denen Logistic# =1 ist.
Ich habe mehrere verschiedene Methoden ausprobiert, wie im folgenden Codeauszug beschrieben, aber entweder wird der Code mit dem Hinweis „Scriptable[]“ oder dem Fehler „Senden erwartet skriptfähiges Objekt“ beendet.Ich bin mir nicht sicher, wo im folgenden Code die ordnungsgemäße Ausführung verhindert wird.
<SPAN class="token comment">//dt3<<GET rows="" where="">
dt3<SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN>Selet Where<SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">:</SPAN><SPAN class="token function">Column</SPAN><SPAN class="token punctuation">(</SPAN> dt3<SPAN class="token punctuation">,</SPAN> clos <SPAN class="token punctuation">)</SPAN> <SPAN class="token operator">==</SPAN> <SPAN class="token function">Num</SPAN><SPAN class="token punctuation">(</SPAN> logis <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN> <SPAN class="token comment">//Method#2</SPAN>
<SPAN class="token comment">//For(i=1, i=NRows(dt3), i++, //Method#3</SPAN>
<SPAN class="token comment">//If( Column( dt3, clos )[i] == Num( logis ),</SPAN>
<SPAN class="token comment">// Column( dt3, clos )[i] << Set Selected( 1 )); );</SPAN>
<SPAN class="token comment">//For Each Row(If( :Column( dt3, clos ) == Num( logis ), :Column( dt3, clos ) << Set //Selected(1)); //Method#4</SPAN></GET></SPAN>
Betreff: Scriptable[] oder „Senden erwartet skriptfähiges Objekt“Hier ist ein Skript, das das erste Problem in Ihrer Datentabelle abdeckt und eine Zeile auswählt, nachdem „NUM_DATA_ROWS“ gefunden wurde:
lamstationfile = Pick File( "choose file", "$Documents" );
dt = Open( lamstationfile, Import Settings( End Of Field( Tab ),
Scan Whole File( 1 ), Column Names Start( 7 ), Data Starts( 8 ), ) );
dt = Current Data Table();
//find data rows
w = N Row( dt );
dt << Select Where( :Time == "NUM_DATA_ROWS" ) << Label( 1 );
d = dt << Get Selected Rows;
Show( d );
// A matrix is returned from << Get Selected Rows, so you need to reference d[1]
dt << Select Where( Row() > (d[1] - 1) );
dt2 = dt << Subset( Selected Rows( 1 ), Selected columns only( 0 ) );
dt /*<< Select Where( Row() > (d - 1) )*/ << Delete Rows;
// Change first two columns to numeric data
Column( dt, 1 ) << Data Type( Numeric );
Column( dt, 1 ) << Modeling Type( "Continuous" );
Column( dt, 1 ) << format("hr:m:s");
Column( dt, 2 ) << Data Type( Numeric );
Column( dt, 2 ) << Modeling Type( "Continuous" );
Was die Auswahl der Spalten und die anschließende Unterteilung betrifft, würde ich vorschlagen, dass Sie das integrierte Spaltenauswahltool „Columns Viewer“ verwenden, anstatt Ihr eigenes Auswahltool zu erstellen.
dt << Columns Viewer;
Betreff: Scriptable[] oder „Senden erwartet skriptfähiges Objekt“Entschuldigung.Die Daten sind nun entsprechend angehängt.
Betreff: Scriptable[] oder „Senden erwartet skriptfähiges Objekt“@asdf :
Die Anhangdatei (.zip) ist leer. Ihre Daten wurden also nicht zum Testen Ihres Codes und zur Fehlersuche bereitgestellt.
Da die tatsächlichen Daten, mit denen Sie arbeiten, fehlen, sehen wir uns hier dieses Beispiel an.
dt = Open( "$SAMPLE_DATA/Air Traffic.jmp" );
dt << Select Where(:Airline == "Delta" & :Event == "Arrive");
Wie Sie sehen, können Sie Zeilen auswählen, in denen zwei unterschiedliche Bedingungen in zwei verschiedenen Spalten erfüllt sind.
In Ihrem Fall - wenn die PM#=2 und Logistic#=1 beziehen sich auf zwei verschiedene Tabellen – dann müssen Sie die Tabellen basierend auf gemeinsamen Spalten für das, was Sie suchen, zusammenführen.
Wenn dies auch nicht der Fall ist, stellen Sie bitte tatsächliche Beispieldaten bereit.