Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
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 erstellen würde.
Weiß jemand, ob das überhaupt möglich ist?
Danke,
Olivia
Betreff: Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?Es hat mir großen Spaß gemacht, diese Idee umzusetzen.Wenn mein Skript die Auswahl mehrerer Zeilen verarbeiten kann (z. B. bei einem kombinierten Plot), gibt es dann eine Möglichkeit, zu warten, bis alle Zeilen ausgewählt sind (z. B. wenn die Strg-Taste gedrückt gehalten wird), bevor das Skript gestartet wird?
Wenn ich beispielsweise die Zeilen 1,3,5 auswählen möchte ... muss ich derzeit Zeile 1 auswählen, wodurch das Skript sofort ausgelöst wird, dann das vom Skript generierte Fenster schließen und dann Zeile 3 auswählen (bei gedrückter Strg-Taste). ), wodurch das Skript sofort ausgelöst wird, dann das vom Skript generierte Fenster (mit 1 und 3 kombiniert) geschlossen wird, dann Zeile 5 ausgewählt wird (bei gedrückter Strg-Taste) ... was schließlich das Skript mit den kombinierten 1, 3, und 5. Wäre es möglich, 1, 3 und 5 auszuwählen ... und dann das Skript abzufeuern?
Betreff: Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?Danke, das hat wirklich geholfen! Ich habe es endlich geschafft, es zum Laufen zu bringen
Betreff: Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?Das folgende Skript gilt für eine Tabelle mit einer Formelspalte und einem Skript zum Erstellen von Diagrammen aus Zeilen.
Wenn eine Zeile ausgewählt wird, werden die Inhalte mehrerer Spalten für die ausgewählte Zeile in eine Teilmengentabelle umgewandelt, die transponiert wird, sodass sie mit einem Überlagerungsdiagramm grafisch dargestellt werden kann. Das ursprüngliche Skript in der Formelspalte sieht zunächst ganz anders aus und ist unterhalb des Tabellenskripts eingefügt.
(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,
Nominell,
Werte festlegen( {"ANOVA", "Apple", "Bannana", "Orange", "Peach"} )
),
Neue Spalte( „Ergebnis 1“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() )
),
Neue Spalte( „Ergebnis 2“,
Numerisch,
Kontinuierlich,
Format( "", 9 ),
Formel( Random Uniform() )
),
Neue Spalte( „Ergebnis 3“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() )
),
Neue Spalte( „Ergebnis 4“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() ),
Ausgewählte festlegen
),
Neue Spalte( „Ergebnis 5“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() )
),
Neue Spalte( „Ergebnis 6“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() )
),
Neue Spalte( „Ergebnis 7“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() )
),
Neue Spalte( „Ergebnis 8“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() )
),
Neue Spalte( „Ergebnis 9“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel( Random Uniform() )
),
Neue Spalte( „Spalte mit Formel zum Erstellen von Diagrammen“,
Numerisch,
Kontinuierlich,
Format( „Best“, 12 ),
Formel(
If( Selected( Row State() ),
Bewertung(
Analysieren(
Namen standardmäßig hier( 1 );
Klare Symbole( 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
)`;
graph1 = Ausdruck(
dt2 << Overlay-Plot(
Y( Spalte( 2 ) ),
Separate Achsen (1),
Connect Thru fehlt( 1 )
)
);
journgraph1 = Eval( graph1 ) << Journal abrufen;
Neues Fenster( „Berichtsfenster für“ || tn[1],
Textfeld( „Diagramm von“ || tn[1] ),
Journalbox (journgraph1)
);
Close( dt1, kein Speichern);
Close( dt2, kein Speichern);
)
)
)
)
),
Zeilenzustände festlegen( [0, 0, 0, 0, 1] )
)
Dies ist das Skript, das in die Formelspalte eingefügt werden soll
( 1 ) ;
() ;
( Ausgewählt ( Zeilenstatus () )
(
(
( 1 ) ;
( 1 ) ;
= aktuelle Datentabelle () ;
= dt0 << Holen Sie sich ausgewählte Zeilen ;
= 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 ( Spalte ( 2 ) ) , Separate Achsen ( 1 ) , Connect Thru Missing ( 1 ) )) ;
= evalu ( graph1 ) << Holen Sie sich Tagebuch ;
( „Berichtsfenster für“ || tn [ 1 ] , Textfeld ( „Grafik von“ || tn [ 1 ]) , Journalbox ( journgraph1 )) ;
( dt1 , kein Speichern ) ;
( dt2 , kein Speichern ) ;
//Ende der Analyse
//Ende der Auswertung
; //Ende von if
Betreff: Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?Danke
Ich habe Probleme, das alles zu meinem Skript hinzuzufügen.
Ich habe versucht, die Tabelle abzurufen und dann eine Spalte mit hinzuzufügen
" Ausgewählt ( Zeilenstatus ( Reihe ())) , tname =: Testname [( aktuelle Datentabelle () << Holen Sie sich ausgewählte Zeilen )[ 1 ]] ;
Enthalten ( „C:/Benutzer/..../Tests/“ || Bewertung ( Analysieren ( : Testname )) || „.jsl“ ) ; 1 , 0 ) ;"
Hier ist „Tests“ mein zweiter Skriptordner (derjenige, der verwendet wird, wenn der Benutzer auf eine Zeile in der Tabelle klickt).
Mein erstes Problem besteht darin, dass ich keine Möglichkeit finde, dies zu tun, da die Anführungszeichen Probleme verursachen, und das zweite Problem besteht darin, dass das, was ich hier mache, Teil eines Tools ist, von dem ich möchte, dass es auch andere Leute, mit denen ich zusammenarbeite, sind nutzen 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: Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?Überprüfen Sie zunächst die Pfadzeichenfolge. Das erste Argument sollte nur den Pfad zum Skriptverzeichnis enthalten und daher mit einem / (Schrägstrich) enden.
Um den ausgewählten TestNamen an die Variable zu übergeben, müssen Sie expliziter vorgehen:
tname =: Testname [( aktuelle Datentabelle () << Holen Sie sich ausgewählte Zeilen )[ 1 ]]
Dieser Code kann durch die Spaltenformel (siehe Beispiel unten) oder im aufgerufenen Skript ausgeführt werden.
Wenn ( Ausgewählt ( Zeilenstatus ( Reihe ())) , tname =: Testname [( aktuelle Datentabelle () << Holen Sie sich ausgewählte Zeilen )[ 1 ]] ; Enthalten ( „C:/Benutzer/..../Ihr_Skriptordner/“ || Bewertung ( Analysieren ( : Testname )) || „.jsl“ ) ; 1 , 0 ) ;
Betreff: Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?
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üllen kann ...
Ich habe Folgendes 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 abrufen;
rconn << Send(tname,R Name("tname"));
Ich mache offensichtlich etwas falsch, weil es nicht funktioniert ...
Betreff: Eine Zelle (in einer JMP-Tabelle) mit einem Skript verknüpfen?Wenn Sie das Auslösen einer Skriptaktion durch Auswahl einer Zeile in der Tabelle meinen, empfehlen wir Ihnen, einen Blick darauf zu werfen diese Demo im JMP-Dateiaustausch. Jede Art von Aktion, zu der jsl in der Lage ist, kann durch Auswahl einer Zeile mithilfe des Tricks aufgerufen werden, den Ian Cox in dieser Demo verwendet.
In seinem Beispiel handelt es sich bei den Skripten tatsächlich um Zeichenfolgen in Tabellenzellen, aber es sollte möglich sein, Tabellenskripte oder, warum nicht, eigenständige Skripte mithilfe der Funktion Include() aufzurufen.
Versuchen Sie beispielsweise die folgende Spaltenformel in einer ausgeblendeten Spalte, um Skripte auszuführen, die genau so benannt sind wie der Zelleninhalt in einer Zeichenspalte „Testname“.
Wenn ( Ausgewählt ( Zeilenstatus ( Reihe ())) , Enthalten ( "dein Weg" || Bewertung ( : Testname ) || „.jsl“ ) ; 1 , 0 )
Wenn der Testname in Zeile drei „ANOVA“ lautet, wird ein Skript ANOVA.jsl, das in einem Verzeichnis mit dem Pfad „IhrPfad“ gespeichert ist, ausgeführt, wenn die dritte Zeile ausgewählt wird (manuell, aber auch per Skript, würde ich vermuten).