¿Por qué la tabla de datos actuales no me funciona?Estoy leyendo un archivo csv, luego llamo a la tabla de datos actual y me da un error: el argumento debe contener una referencia a la tabla de datos en el acceso o la evaluación de 'Tabla de datos actual', Tabla de datos actual / * # # # * / (dtIVInitial)
Even though the type of dtIVInitial is Table ? What am I doin wrong. Also this doesnt even open a datatable.
// Construct the full paths
initialCSVPath = dataFolderInitial || "/" || initialCSVFile;
finalCSVPath = dataFolderFinal || "/" || finalCSVFile;
// Debugging Output
Show("Matching Initial CSV:", initialCSVPath);
Show("Matching Final CSV:", finalCSVPath);
// Open Files
If( File Exists(initialCSVPath),
Show("Initial file exists");
dtIVInitial = Open(initialCSVPath,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Comma, CSV( 1 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" )
));
Wait(1.0);
dtIVInitial << Set Name("IV Curves Initial Data");
,
Throw("Initial IV Curve CSV file not found! Check folder structure.");
);
If( File Exists(finalCSVPath),
Show("Final file exists");
dtIVFinal = Open(finalCSVPath,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Comma, CSV( 1 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" )
));
Wait(1.0);
dtIVFinal << Set Name("IV Curves Final Data");
,
Throw("Final IV Curve CSV file not found! Check folder structure.");
);
Show(Type(dtIVInitial)); // "Table"
Show(Type(dtIVFinal)); // "Table"
Show(IsEmpty(dtIVInitial));
Show(IsEmpty(dtIVFinal)); <BR />Current Data Table(dtIVInitial);
Automatización y scriptingAnálisis y modelado de datos básicosAcceso a datosExploración y visualización de datosRe: ¿Por qué la tabla de datos actuales no me funciona?¿Para qué necesitas la tabla de datos actual? Ya tienes la referencia a la tabla y puedes usarla en su lugar.
Aparte del consejo de que no deberías usar la tabla de datos actual en casos como este, esa sintaxis debería ser correcta si dtIVInitial es una tabla. Puedes usar Show con dtIVInitial para mostrar lo que tiene
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt1 = Open("$SAMPLE_DATA/Big Class Families.jmp");
show(Current Data Table());
Current Data Table(dt);
show(Current Data Table());
Re: ¿Por qué la tabla de datos actuales no me funciona?Tengo varias tablas en mi script. En etapas posteriores, tengo que crear determinados gráficos a partir de cada tabla. Por lo tanto, normalmente establezco la tabla actual en el formulario desde el que tengo que crear el gráfico en ese momento y luego creo el gráfico. No estoy seguro de si ese es el enfoque correcto.
Re: ¿Por qué la tabla de datos actuales no me funciona?Hola
@jthi, muchas gracias por tu respuesta inmediata. Resulta que más adelante en el script estaba cerrando la tabla, de ahí el problema.
Re: ¿Por qué la tabla de datos actuales no me funciona?Este enfoque puede ser muy riesgoso. Es mejor enviar el mensaje de la plataforma directamente a la referencia de la tabla de datos si puede obtenerlo fácilmente sin la tabla de datos actual (este es el caso bastante común). Aquí hay un ejemplo con el generador de gráficos y la distribución con algunas impresiones adicionales para registrar solo para mostrar cómo se puede utilizar la referencia de la tabla.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
dist = dt << Distribution(Column(:Age, :Weight));
nw = New Window("",
H List Box(
gb2 = dt << Graph Builder(
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(9)))
),
dist2 = dist = dt << Distribution(Column(:Age));
)
);
Show(dt, gb, dist, gb << Get Data Table, gb2, dist2);Re: ¿Por qué la tabla de datos actuales no me funciona?Esto es bueno, aplicaré este cambio en mi código actual.