Pourquoi le tableau de données actuel ne fonctionne pas pour moiJe lis un fichier csv puis j'appelle la table de données actuelle sur celui-ci et cela me donne une erreur - L'argument doit contenir une référence de table de données dans l'accès ou l'évaluation de « Current Data Table », Current Data Table/*###*/(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);
Automatisation et scriptsAnalyse et modélisation de données de baseAccès aux donnéesExploration et visualisation des donnéesRe: Pourquoi le tableau de données actuel ne fonctionne pas pour moiÀ quoi sert Current Data Table() ? Vous disposez déjà de la référence à la table et vous pouvez l'utiliser à la place.
En dehors de l'astuce selon laquelle vous ne devriez pas utiliser Current data table() dans ce cas, cette syntaxe devrait être correcte si dtIVInitial est une table. Vous pouvez simplement utiliser Show avec dtIVInitial pour afficher ce qu'il contient
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: Pourquoi le tableau de données actuel ne fonctionne pas pour moiJ'ai plusieurs tables dans mon script. Dans les étapes ultérieures, je dois créer certains graphiques à partir de chaque table. Je définis donc généralement la table actuelle sur la forme à partir de laquelle je dois créer un graphique à ce moment-là, puis je crée le graphique. Je ne suis pas sûr que ce soit la bonne approche.
Re: Pourquoi le tableau de données actuel ne fonctionne pas pour moiHé
@jthi, merci beaucoup pour votre réponse instantanée. Il s'avère que plus tard dans le script, je fermais la table, d'où le problème.
Re: Pourquoi le tableau de données actuel ne fonctionne pas pour moiCette approche peut être très risquée. Il est préférable d'envoyer le message de la plateforme directement à la référence de la table de données si vous pouvez facilement l'obtenir sans la table de données actuelle (c'est le cas assez souvent). Voici un exemple avec un générateur de graphes et une distribution avec quelques impressions supplémentaires à enregistrer juste pour montrer comment la référence de table peut être utilisée
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: Pourquoi le tableau de données actuel ne fonctionne pas pour moiC'est sympa, je vais appliquer ce changement dans mon code actuel