Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hi,
Ich habe ein JMP-Skript, das eine Tabelle (mit analysierten Daten) mit Testnamen in der ersten Spalte erstellt.
Ich habe mich gefragt, ob ich jeden Testnamen mit einem Skript verknüpfen könnte, das dann eine Reihe von Diagrammen erzeugen würde.
Weiß jemand, ob das überhaupt möglich ist?
Vielen Dank,
Olivia
Betreff: Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?Die Umsetzung dieser Idee hat mir sehr viel Spaß gemacht.Wenn mein Skript die Auswahl mehrerer Zeilen verarbeiten kann (wie bei einem kombinierten Diagramm), gibt es eine Möglichkeit zu warten, bis alle Zeilen ausgewählt sind (wie bei gedrückter Strg-Taste), bevor das Skript ausgelöst wird?
Wenn ich zum Beispiel die Zeilen 1,3,5 auswählen möchte ... muss ich derzeit Zeile 1 auswählen, die das Skript sofort auslöst, dann das aus dem Skript generierte Fenster schließen und dann Zeile 3 auswählen (bei gedrückter Strg-Taste). ), was das Skript sofort auslöst, dann das aus dem Skript generierte Fenster schließen (mit 1 und 3 kombiniert), dann Zeile 5 auswählen (bei gedrückter Strg-Taste) ... was schließlich das Skript mit den kombinierten 1, 3 auslöst, und 5. Wäre es möglich, 1, 3 und 5 auszuwählen ... und dann das Skript abzufeuern?
Betreff: Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?Danke, das hat wirklich geholfen! Ich habe es endlich geschafft, es zum Laufen zu bringen
Betreff: Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?Das folgende Skript ist für eine Tabelle, die eine Formelspalte mit einem Skript zum Erstellen von Diagrammen aus Zeilen enthält.
Wenn eine Zeile ausgewählt wird, werden die Inhalte mehrerer Spalten für die ausgewählte Zeile in eine Teilmengentabelle umgewandelt, die transponiert wird, damit sie mit einem Überlagerungsdiagramm grafisch dargestellt werden kann. Das ursprüngliche Skript, das sich in der Formelspalte befindet, sieht zunächst ganz anders aus und ist unterhalb des Tabellenskripts enthalten.
(Kopieren Sie das Tabellenskript in ein Skriptfenster und führen Sie das Skript aus.)
Neue Tabelle( "Ergebnistabelle",
Zeilen hinzufügen ( 5 ),
Neue Spalte ("Analyse",
Charakter,
Nominal,
Set Values( {"ANOVA", "Apple", "Bannana", "Orange", "Pfirsich"} )
),
Neue Spalte( "Ergebnis 1",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (zufällige Uniform())
),
Neue Spalte( "Ergebnis 2",
Numerisch,
Kontinuierlich,
Format( "", 9 ),
Formel (zufällige Uniform())
),
Neue Spalte( "Ergebnis 3",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (zufällige Uniform())
),
Neue Spalte( "Ergebnis 4",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (zufällige Uniform()),
Ausgewählt festlegen
),
Neue Spalte( "Ergebnis 5",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (zufällige Uniform())
),
Neue Spalte( "Ergebnis 6",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (zufällige Uniform())
),
Neue Spalte( "Ergebnis 7",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (Zufällige Uniform())
),
Neue Spalte( "Ergebnis 8",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (zufällige Uniform())
),
Neue Spalte( "Ergebnis 9",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel (zufällige Uniform())
),
New Column( "Spalte mit Formel zum Erstellen von Diagrammen",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel(
Wenn (Ausgewählt (Zeilenstatus()),
Bewertung(
Analysieren (
Namen standardmäßig bis hierher ( 1 );
Symbole löschen ( 1 );
dt0 = Aktuelle Datentabelle ();
rn = dt0 << Ausgewählte Zeilen abrufen;
tn = dt0:Analyse[rn];
dt1 = Datentabelle( "Ergebnistabelle" ) <<
Teilmenge(
Ausgabetabelle ( tn[1] ),
ausgewählte Spalten ( 0 ),
Ausgewählte Zeilen ( 0 ),
Zeilen ( rn )
);
dt2 = dt1 << Spalten(
:Ergebnis 1,
:Ergebnis 2,
:Ergebnis 3,
:Ergebnis 4,
:Ergebnis 5,
:Ergebnis 6,
:Ergebnis 7,
:Ergebnis 8,
:Ergebnis 9
)`;
Grafik1 = Ausdr(
dt2 << Overlay-Plot(
Y(Spalte( 2 ) ),
Separate Achsen ( 1 ),
Verbindung fehlt ( 1 )
)
);
journgraph1 = Eval( graph1 ) << Tagebuch abrufen;
Neues Fenster( "Berichtsfenster für " || tn[1],
Textfeld( "Grafik von " || tn[1] ),
Zeitschriftenbox (journgraph1)
);
Close(dt1, kein Speichern);
Close(dt2, kein Speichern);
)
)
)
)
),
Zeilenstatus festlegen ( [0, 0, 0, 0, 1] )
)
Dies ist das Skript, das in die Formelspalte eingefügt werden soll
( 1 ) ;
() ;
( Ausgewählt ( Zeilenzustand () )
(
(
( 1 ) ;
( 1 ) ;
= aktuelle Datentabelle () ;
= dt0 << ausgewählte Zeilen erhalten ;
= dt0 : Analyse [ rn ] ;
= Datentabelle ( "Ergebnistabelle" ) << Teilmenge (
1 ] ) ,
0 ) ,
0 ) ,
//,unsichtbar
;
= dt1 << Transponieren (
: Ergebnis 1 ,
: Ergebnis 2 ,
: Ergebnis 3 ,
: Ergebnis 4 ,
: Ergebnis 5 ,
: Ergebnis 6 ,
: Ergebnis 7 ,
: Ergebnis 8 ,
: Ergebnis 9 ,
: Spalte 11
,
: Analyse [ rn ] ) , //das wird in der Formel nicht übersetzt
1 ] || "für Grafik" ) //,unsichtbar
;
= Ausdruck ( dt2 << Überlagerungsdiagramm ( Y ( Säule ( 2 ) ) , Getrennte Achsen ( 1 ) , Connect Thru fehlt ( 1 ) )) ;
= auswerten ( Grafik1 ) << Tagebuch erhalten ;
( "Berichtsfenster für" || tn [ 1 ] , Textfeld ( "Grafik von" || tn [ 1 ]) , Journal-Box ( Tagebuch1 )) ;
( dt1 , kein speichern ) ;
( dt2 , kein speichern ) ;
// Ende der Analyse
//Ende der Auswertung
; // Ende von wenn
Betreff: Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?Vielen Dank
Ich habe Probleme, all dies zu meinem Skript hinzuzufügen.
Was ich versucht habe, ist, die Tabelle zu bekommen und dann eine Spalte mit hinzuzufügen
" Ausgewählt ( Zeilenzustand ( Die Zeile ())) , tname =: Testname [( aktuelle Datentabelle () << ausgewählte Zeilen erhalten )[ 1 ]] ;
Enthalten ( "C:/Benutzer/..../Tests/" || Bewertung ( Analysieren ( : Testname )) || ".jsl" ) ; 1 , 0 ) ;"
Hier ist „Tests“ mein zweiter Skriptordner (der verwendet wird, wenn der Benutzer auf eine Zeile in der Tabelle klickt).
Mein erstes Problem ist, dass ich keinen Weg finde, dies zu tun, da die Anführungszeichen Probleme verursachen, und das zweite ist, dass das, was ich hier tue, alles Teil eines Tools ist, von dem ich möchte, dass andere Leute, mit denen ich arbeite, es sind verwenden können. Wird das möglich sein, da ich jetzt ein zweites Skript habe, auf das über seinen Dateipfad zugegriffen wird (das Skript befindet sich auf meinem Desktop)?
Nochmals vielen Dank für Ihre Hilfe
Olivia
Betreff: Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?Überprüfen Sie zuerst die Pfadzeichenfolge. Das erste Argument sollte nur den Pfad zum Skriptverzeichnis enthalten und daher mit einem / (Schrägstrich) enden.
Um den ausgewählten TestName an die Variable zu übergeben, müssen Sie expliziter sein:
tname =: Testname [( aktuelle Datentabelle () << ausgewählte Zeilen erhalten )[ 1 ]]
Dieser Code kann von der Spaltenformel (siehe Beispiel unten) oder im aufgerufenen Skript ausgeführt werden.
Wenn ( Ausgewählt ( Zeilenzustand ( Die Zeile ())) , tname =: Testname [( aktuelle Datentabelle () << ausgewählte Zeilen erhalten )[ 1 ]] ; Enthalten ( "C:/Benutzer/..../Ihr_Skriptordner/" || Bewertung ( Analysieren ( : Testname )) || ".jsl" ) ; 1 , 0 ) ;
Betreff: Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?
Ja, genau das möchte ich tun.
Das Problem, das ich habe, ist, dass ich diesen Testnamen wieder in das JMP-Skript einfügen muss, damit ich ihn an R senden kann, damit meine Funktion ihre Aufgabe erfüllt ...
Ich habe das versucht:
In einer zusätzlichen Spalte in meiner Tabelle:
If(Selected(Row State(Row())), Include("C:/Users/....jsl" || Eval(Parse(:TestName)) || ".jsl"); 1, 0)
Und dann auf der Skriptseite:
tname = TestName << Text erhalten;
rconn << Send(tname,R Name("tname"));
Irgendwas mache ich offensichtlich falsch, da es nicht funktioniert...
Betreff: Verknüpfen einer Zelle (in einer JMP-Tabelle) mit einem Skript?Wenn Sie meinen, eine Skriptaktion auszulösen, indem Sie eine Zeile in der Tabelle auswählen, schlage ich vor, dass Sie einen Blick auf werfen diese demo im JMP-Dateiaustausch. Jede Art von Aktion, zu der jsl in der Lage ist, kann aufgerufen werden, indem eine Zeile mit dem Trick ausgewählt wird, den Ian Cox in dieser Demo verwendet.
In seinem Beispiel sind die Skripte tatsächlich Zeichenfolgen in Tabellenzellen, aber es sollte möglich sein, Tabellenskripte oder warum nicht eigenständige Skripte mit der Funktion Include() aufzurufen.
Probieren Sie zum Beispiel die folgende Spaltenformel in einer versteckten Spalte aus, um Skripte auszuführen, die genau so benannt sind wie der Zelleninhalt in einer Zeichenspalte "testname".
Wenn ( Ausgewählt ( Zeilenzustand ( Die Zeile ())) , Enthalten ( "dein Weg" || Bewertung ( : Testname ) || ".jsl" ) ; 1 , 0 )
Wenn der Testname in Zeile drei "ANOVA" ist, wird ein Skript ANOVA.jsl ausgeführt, das in einem Verzeichnis mit dem Pfad "yourpath" gespeichert ist, wenn die dritte Zeile ausgewählt wird (manuell, aber auch per Skript, würde ich vermuten).