Comment nommer une table via JSL et la référencer plus tard dans le script ?Bonjour, j'essaie de sélectionner un petit sous-ensemble de données à partir d'une grande table de données et d'en créer une table temporaire. L'objectif général est de résumer les données du sous-ensemble. Le script ci-dessous crée la table de données de sous-ensemble "Name" mais il ne lui renvoie pas la référence pour que je traite la nouvelle table. Dans le script ci-dessous, il résume les données de la table de données Test mais pas la table de données Name.
Je vous prie aider moi avec ceci.
dt=Open("Test.jmp");
Z= NRow();
k=dt<< Get Rows Where(:Para == "THK" );
pt = dt << Subset(
Rows(k),
Output Table Name("Name"),
);
// I want to summarize the data from this subset data table
Close (dt, No Save);
pt = Current Data Table ();
Summarize(
a=by(:Para, Route),
//b= by(:Route),
c= count,
meanHT = mean(SITE_VALUE),
stdevHT = stddev(SITE_VALUE)
);
show (a,c);
Re : Référence au nom de la table de sortieLa première est une question et la seconde est une affirmation.
Il est souvent efficace lorsque vous travaillez avec une table de données d'obtenir une référence à celle-ci, puis de la réutiliser pour envoyer des messages. La première utilisation consiste à appeler la fonction pour obtenir cette référence et à la stocker dans une variable pour référence future.
La table de données actuelle est pratique dans la mesure où la plupart des actions dans JMP utilisent par défaut cette table si aucune n'est explicitement spécifiée. La deuxième utilisation affecte une référence de table pour en faire la table de données actuelle. Imaginez que vous avez plusieurs tables ouvertes et que vous souhaitez changer une table pour qu'elle soit à jour.
Cette disposition dans JSL est une question de style. Cela dépend également du cas d'utilisation si un style est plus avantageux qu'un style.
Re : Référence au nom de la table de sortie
pt = current data table();
obtiendra la table de données actuelle
current data table(pk);
définira la table de données actuelle
Re : Référence au nom de la table de sortieQuelle est la différence entre
pt = current data table();
et
current data table(pk);
?
Re : Référence au nom de la table de sortieIl me manque peut-être quelque chose, mais d'après la question initiale, le problème indiqué semblait être la nécessité de pouvoir référencer le tableau de données sous-ensemble pour la fonction de synthèse.Dans JMP 12, un argument supplémentaire est disponible pour la fonction de synthèse.Vous pouvez ajouter la table de données comme premier argument.Donc, tout ce que vous auriez à faire est de changer l'instruction de résumé en :
Summarize(pt,
a=by(:Para, Route),
//b= by(:Route),
c= count,
meanHT = mean(SITE_VALUE),
stdevHT = stddev(SITE_VALUE)
);
Une autre observation est que vous utilisiez une déclaration de :
pt = current data table();
Ce que je crois que vous vouliez vraiment faire, c'est définir la table de données actuelle sur pk, en utilisant :
current data table(pk);
Ou suis-je complètement mal orienté ?
Re : Référence au nom de la table de sortieSi vous utilisez l'option 'Enregistrer' de 'Fermer()', vous devez indiquer à JMP où placer le fichier :
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Wait(3);
Close(dt, Save("$DESKTOP/"||(dt << getName)));Re : Référence au nom de la table de sortie<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Merci. Cela semble résoudre mon problème d'origine. .
En fait, mon script d'origine semble également fonctionner, mais ne me permet pas de gérer facilement l'objet datatable. Comme dans le cas présent (en utilisant votre script), je ne parviens pas à enregistrer la table de sous-ensemble. Aucune suggestion?? Merci d'avance
Fermer (dtSub, Enregistrer) ;
lance une erreur.....
Problème d'E/S. Impossible d'ouvrir en mode ReadWrite.
Le système ne peut pas trouver le fichier spécifié.
Enregistrer les modifications apportées au tableau de données JMP Femme ?
Re : Référence au nom de la table de sortiePeut-être que l'équivalent JSL de 'Tables > Summary' est meilleur dans ce cas ?
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
rows2get = dt << getRowsWhere(:sex == "F");
dtSub = dt << Subset(Rows(rows2get), Output Table("Females"));
dtSummary = dtSub << Summary(Mean(:Weight), Group(:age));