JSL - Comment obtenir le type d'analyseExiste-t-il un moyen facile de déterminer le type d’analyse que je considère du point de vue de la JSL? Je veux savoir si la boîte de contour est un Oneway, Bivarié, ect. Je pensais qu'il y avait un moyen facile de faire cela, comme une analyse << Nom de la classe (mais cela n'a pas fonctionné - renvoie simplement OutlineBox).
Je souhaite exécuter un code différent en fonction du type d'analyse dans une fenêtre donnée. En supposant que je ne crée pas explicitement l'analyse et ne sache pas ce que c'est. La seule façon dont je puisse penser est avec le code ci-dessous, mais il me semble incroyablement vitreux. Est-ce le seul moyen?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
analysis = dt << Fit Y by X(
Y( :weight ),
X( :height, :sex )
);
for(i=1, i<=nitems(analysis), i++,
if(contains(Log Capture(print(analysis[i])), "Oneway"),
Print("It's a Oneway"),
Print("It's not Oneway")
);
);
@Craige_Hales , @Mme , @Jeff_Perkinson
Re: JSL - Comment obtenir le type d'analyseMerci @pmroz , ouais j’utilise souvent la fonction char () de la même manière que vous, encore une fois, je ne sais pas pourquoi je n’y pensais pas pour le moment.
La fonction XPATH semble super utile. La syntaxe ne semble pas trop compliquée et il y a des tutoriels sur W3schools, donc c'est un avantage. https://www.w3schools.com/xml/xpath_intro.asp
En utilisant XPATH, je peux simplement sélectionner les rapports du type que je veux. Super utile! Je vais devoir creuser un peu cela.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
analysis = dt << Fit Y by X(
Y( :weight ),
X( :height, :sex )
);
OnewayReports = Current report()<< xpath("//OutlineBox[contains(@helpKey, 'Oneway Report')]/.");
oneway = OnewayReports[1];
oneway << Set Title("Test");Re: JSL - Comment obtenir le type d'analyseDésolé, j'ai été trop rapide pour répondre et je n'ai pas vraiment compris la question.
Dans la boucle de votre exemple Char (analyse [i]) donnerait le même résultat que
Capture de journal (Imprimer (analyse [i])).
De même, xpath () pourrait être intéressant d’explorer des scénarios plus complexes. Par exemple, cet exemple de code retourne une liste de chaînes du rapport en cours.
Current report()<< xpath("//OutlineBox[contains(@helpKey, 'Report')]/@helpKey");Re: JSL - Comment obtenir le type d'analyseContent que cela ait aidé. J'ai utilisé le carboniser() fonction pour convertir des éléments en texte pour écrire dans Oracle, pour enregistrer un état de boîte de dialogue. Je l'ai notamment utilisé pour les listes. Notez que faire les choses en sens inverse nécessite une analyse.
a = {"xyz", "Hello", "World"};
b = char(a);
"{\!"xyz\!", \!"Hello\!", \!"World\!"}"
c = parse(b);
{"xyz", "Hello", "World"}
Re: JSL - Comment obtenir le type d'analyseMerci! La solution évidente peut parfois vous échapper, je ne sais pas trop où était ma tête. Je souhaite toujours que l'objet box contienne un nom ou un paramètre de type.
Re: JSL - Comment obtenir le type d'analysePourquoi ne pas convertir la liste d'analyse en caractères, puis analyser le résultat?
ca = char(analysis);
analysis_list = words(ca, "{}[], ");
{"Bivariate", "Oneway"}Re: JSL - Comment obtenir le type d'analyseCela semble ne faire que renvoyer l'objet d'analyse:
scriptObjs = analysis << get scriptable object;
print(scriptObjs);
print(analysis);
print(scriptObjs == analysis); //returns true
Il me reste encore ma méthode log capture () pour récupérer les scriptsObjs.
Re: JSL - Comment obtenir le type d'analyse
analysis << get scriptable object;
Retourne une liste des analyses