JSL - So erhalten Sie die Art der AnalyseGibt es einen einfachen Weg, um herauszufinden, welche Art von Analyse ich aus JSL-Perspektive betrachte? Ich möchte wissen, ob die Umrissbox ein Einweg, ein Bivariate ist, ect. Ich dachte, es gäbe einen einfachen Weg, dies zu tun, wie Analyse << Klassenname (aber das hat nicht funktioniert - gibt einfach OutlineBox zurück).
Ich möchte in jedem Fenster einen anderen Code basierend auf der Art der Analyse ausführen. Dies setzt voraus, dass ich die Analyse nicht explizit erstelle und weiß, was sie ist. Die einzige Möglichkeit, an die ich denken könnte, ist der folgende Code, aber es fühlt sich unglaublich glasig an. Ist das der einzige Weg?
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 . @Frau . @ Jeff_Perkinson
Re: JSL - So erhalten Sie die Art der AnalyseVielen Dank @pmroz Ja, ich benutze oft die char () - Funktion ähnlich wie Sie. Ich bin mir nicht sicher, warum ich im Moment nicht daran gedacht habe.
Die XPATH-Funktion erscheint sehr nützlich. Die Syntax erscheint nicht zu kompliziert und es gibt Tutorials zu W3schools, das ist also ein Plus. https://www.w3schools.com/xml/xpath_intro.asp
Mit XPATH kann ich einfach die gewünschten Berichte auswählen. Super nützlich! Ich werde mich ein bisschen damit beschäftigen müssen.
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 - So erhalten Sie die Art der AnalyseEntschuldigung, ich habe zu schnell geantwortet und die Frage nicht richtig verstanden.
In der Schleife in Ihrem Beispiel Char (Analyse [i]) würde dasselbe Ergebnis ergeben wie
Protokollierung (Drucken (Analyse [i])).
Auch xpath () könnte sich für komplexere Szenarien lohnen. In diesem Codebeispiel wird beispielsweise eine Liste von Zeichenfolgen aus dem aktuellen Bericht zurückgegeben.
Current report()<< xpath("//OutlineBox[contains(@helpKey, 'Report')]/@helpKey");Re: JSL - So erhalten Sie die Art der AnalyseIch bin froh, dass es geholfen hat. Ich habe das benutzt verkohlen() Funktion zum Konvertieren von Text in Text zum Schreiben in Oracle, um den Status eines Dialogfelds zu speichern. Insbesondere habe ich es für Listen verwendet. Beachten Sie, dass die umgekehrte Vorgehensweise eine Analyse erfordert.
a = {"xyz", "Hello", "World"};
b = char(a);
"{\!"xyz\!", \!"Hello\!", \!"World\!"}"
c = parse(b);
{"xyz", "Hello", "World"}
Re: JSL - So erhalten Sie die Art der AnalyseVielen Dank! Die offensichtliche Lösung kann Ihnen manchmal entgehen, ich bin mir nicht sicher, wo meine Gedanken waren. Ich möchte immer noch, dass das Boxobjekt einen Namen oder einen Typparameter enthält.
Re: JSL - So erhalten Sie die Art der AnalyseWie wäre es, wenn Sie die Analyseliste in char konvertieren und dann das Ergebnis analysieren?
ca = char(analysis);
analysis_list = words(ca, "{}[], ");
{"Bivariate", "Oneway"}Re: JSL - So erhalten Sie die Art der AnalyseDies scheint nur das Analyseobjekt zurückzugeben:
scriptObjs = analysis << get scriptable object;
print(scriptObjs);
print(analysis);
print(scriptObjs == analysis); //returns true
Ich habe immer noch meine log capture () - Methode, um die scriptsObjs zu kratzen.
Re: JSL - So erhalten Sie die Art der Analyse
analysis << get scriptable object;
Gibt eine Liste der Analysen zurück