pensé que @uday_guntupalli el código debería funcionar, sin embargo, en 13.2.1 no lo haría (extraño).Sin embargo, usar As Column() en lugar de Column() permitió que su código específico funcionara
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 <Re: Scriptable[] o 'enviar espera un objeto programable'Lo siento, debería haber sido más claro.El problema que tengo es con el final de mi código después de haber creado una tercera tabla de datos dt3. Todo antes de la última línea activa de código funciona bien [obtener filas y columnas en la primera tabla de datos dt, configurar las entradas PM # = 2 y Logistic # = 1 están bien].Simplemente no puedo seleccionar varias filas en dt3 donde Logistic# =1 .
Probé varios métodos diferentes como se indica en el extracto del código a continuación, pero obtengo el código terminado con la nota 'Scriptable []' o el error 'Enviar espera objeto programable'.No estoy seguro de en qué parte del siguiente código se impide que se ejecute correctamente.
<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>
Re: Scriptable[] o 'enviar espera un objeto programable'Aquí hay una secuencia de comandos que cubre el primer problema en su tabla de datos, seleccionando la fila después de encontrar "NUM_DATA_ROWS:
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" );
Con respecto a su selección de columnas y luego subconjuntos, le sugiero que use la herramienta de selección de columnas integrada, "Visor de columnas" en lugar de crear su propia herramienta de selección.
dt << Columns Viewer;
Re: Scriptable[] o 'enviar espera un objeto programable'Lo siento.Los datos ahora están debidamente adjuntos.
Re: Scriptable[] o 'enviar espera un objeto programable'@asdf :
El archivo adjunto (.zip) está vacío, por lo que no se proporcionaron sus datos para probar su código y ver su error para solucionar el problema.
En ausencia de los datos reales con los que está trabajando, veamos este ejemplo.
dt = Open( "$SAMPLE_DATA/Air Traffic.jmp" );
dt << Select Where(:Airline == "Delta" & :Event == "Arrive");
Como puede ver, puede seleccionar filas donde se cumplan dos condiciones diferentes en dos columnas diferentes.
En su caso, si el PM#=2 y Logistic#=1 se refieren a 2 tablas diferentes; luego, debe unir las tablas según las columnas comunes para lo que busca.
Si no es así, proporcione datos de muestra reales.