Warum funktioniert Current Data Table bei mir nicht?Ich lese eine CSV-Datei, rufe dann die aktuelle Datentabelle auf und erhalte den Fehler - Das Argument muss beim Zugriff oder bei der Auswertung von „Aktuelle Datentabelle“ einen Datentabellenverweis enthalten, Aktuelle Datentabelle/*###*/(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);
Automatisierung und SkriptingGrundlegende Datenanalyse und ModellierungDatenzugriffDatenexploration und -visualisierungBetreff: Warum funktioniert Current Data Table bei mir nicht?Wofür benötigen Sie Current Data Table()? Sie haben bereits den Verweis auf die Tabelle und können diesen stattdessen verwenden.
Abgesehen von dem Hinweis, dass Sie in einem solchen Fall nicht Current data table() verwenden sollten, sollte diese Syntax korrekt sein, wenn dtIVInitial eine Tabelle ist. Sie können einfach Show mit dtIVInitial verwenden, um anzuzeigen, was es enthält.
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());
Betreff: Warum funktioniert Current Data Table bei mir nicht?Ich habe mehrere Tabellen in meinem Skript. In späteren Phasen muss ich aus jeder Tabelle bestimmte Diagramme erstellen. Normalerweise stelle ich die aktuelle Tabelle also auf die Form ein, aus der ich zu diesem Zeitpunkt ein Diagramm erstellen muss, und erstelle dann das Diagramm. Ich bin nicht sicher, ob das der richtige Ansatz ist.
Betreff: Warum funktioniert Current Data Table bei mir nicht?Hey
@jthi, vielen Dank für Ihre sofortige Antwort. Später im Skript stellte sich heraus, dass ich die Tabelle geschlossen habe, daher das Problem.
Betreff: Warum funktioniert Current Data Table bei mir nicht?Das kann ein sehr, sehr riskanter Ansatz sein. Es ist besser, die Plattformnachricht direkt an die Datentabellenreferenz zu senden, wenn Sie sie problemlos ohne aktuelle Datentabelle abrufen können (das ist ziemlich häufig der Fall). Hier ist ein Beispiel mit Graph Builder und Verteilung mit einigen zusätzlichen Ausdrucken zum Protokollieren, nur um zu zeigen, wie die Tabellenreferenz genutzt werden kann
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);Betreff: Warum funktioniert Current Data Table bei mir nicht?Das ist gut, ich werde diese Änderung in meinem aktuellen Code anwenden.