Wählen Sie mehrere Spalten aus und erstellen Sie ein Histogramm in einem SkriptHallo,
Ich habe ein Skript geschrieben, um zwei Spalten aus einer Tabelle auszuwählen und ein Histogramm zu erstellen. Ich möchte in der Lage sein, eine beliebige Anzahl von Spalten auszuwählen und ein Histogramm für die ausgewählte Spalte zu erstellen. Kann mir jemand helfen, das zu erreichen? Ich habe mein Skript unten aufgelistet. Danke
dt = Offen ( „A.csv“ );
xvar = . ;
yvar = . ;
gewinnen = Neues Fenster ( „Wählen Sie zwei Variablen“ ,
<< Modal ,
<< Beim Validieren (
// den Benutzer auffordern, zwei Variablen auszuwählen, bevor er auf „OK“ klickt
Zeigen ( xvar, yvar );
Wenn ( Wird vermisst (xvar) | Wird vermisst (yvar),
0 , // Wenn xvar oder yvar fehlen, wird beim Klicken auf „OK“ nichts unternommen
1
);
),
Textfeld ( " Wählen Sie zwei numerische Spalten aus. " ),
H-Listenfeld (
Textfeld ( „Wählen Sie zuerst“ ),
x = Col-Listenfeld (
dt, // Datentabellenreferenz
alle, // alle Spalten aus der Datentabelle anzeigen
xvar = (x << Werden Sie ausgewählt )[ 1 ];
// Den Namen der ausgewählten Spalte abrufen, bevor das Fenster geschlossen wird
Zeigen ( xvar );
),
Textfeld ( „Wählen Sie Zweites“ ),
y = Col-Listenfeld (
dt,
alle,
yvar = (y << Werden Sie ausgewählt )[ 1 ];
Zeigen (yvar);
)
)
);
xcol = Spalte ( dt, xvar ); // Holen Sie sich die Spalten
ycol = Spalte ( dt, yvar );
name1 = :: || xvar;
name2 = :: || Yvar;
name = name1 || "," || Name2;
Zeigen ( Name );
Bewertung (
Analysieren (
"obj1 = Verteilung(
Stapel(1),
Kontinuierliche Verteilung( Spalte(" || name1 || "),
),
Kontinuierliche Verteilung( Spalte(" || name2 ||
"),
)
);"
)
);
Betreff: Mehrere Spalten auswählen und Histogramm in einem Skript erstellenDanke. Das ist ein sehr hilfreiches Skript.Betreff: Mehrere Spalten auswählen und Histogramm in einem Skript erstellenHallo,
Danke noch einmal. Ich wollte das Ergebnis des Histogramms in HTML speichern und habe dies in der Vergangenheit auch getan. Hier ist das Skript mit einigen Änderungen. Ich erhalte eine Fehlermeldung
Name nicht aufgelöst: obj beim Zugriff oder bei der Auswertung von „obj“. Ich schätze Ihre Hilfe.
dt = Offen ( „A.csv“ );
gewinnen = Neues Fenster ( „Datenauswahl“ ,
H-Listenfeld (
Panel-Box ( „Verfügbare Spalten“ , dtCols = Col-Listenfeld ( dt, alle, Breite( 80 ) ), ),
Panel-Box ( „Ausgewählte Spalten“ ,
H-Listenfeld (
V-Listenfeld (
addButton = Button-Box ( "Hinzufügen" , colList << Anhängen ( dtCols << Werden Sie ausgewählt ) ),
RemoveButton = Button-Box ( "Entfernen" , colList << Ausgewählte entfernen () )
),
colList = Col-Listenfeld ( numerisch, Breite( 80 ), MinItems( 1 ), N Zeilen( 4 ) )
)
),
okButton = Button-Box ( "OK" ,
PlotCols = colList << Holen Sie sich Artikel ;
str = „“ ;
Für ( ich = 1 , ich <= N Artikel ( PlotCols ), i++,
str = str || "Kontinuierliche Verteilung(Spalte(:Name(\!"" || plotcols[i] || "\!"))),
"
);
Bewertung ( Analysieren ( „obj = dt << Distribution(stack(1),“ || str || ");" ) );
gewinnen << Fenster schließen ;
)
)
);
obj << Bericht ;
obj << Speichern Sie interaktives HTML ( "A" );
Betreff: Mehrere Spalten auswählen und Histogramm in einem Skript erstellenVielen Dank für die Bereitstellung der Lösung. Ich habe es versucht und es funktioniert.
Betreff: Mehrere Spalten auswählen und Histogramm in einem Skript erstellenHier ist eine Methode, die colListBoxes verwendet:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
win = New Window("Data Select",
H List Box(
Panel Box("Available Columns",
dtCols = Col List Box(dt, all, width(80)),
),
Panel Box("Selected Columns",
H List Box(
V list Box(
addButton = Button Box("Add", colList << Append(dtCols << Get Selected) ),
removeButton = Button Box("Remove", colList << Remove Selected() )
),
colList = Col List Box(numeric, width(80), MinItems(1), N Lines(4))
)
),
okButton = Button Box("OK",
PlotCols = colList << Get Items;
str = "";
for(i=1,i<=N Items(PlotCols),i++,
str = str||"Continuous Distribution(Column(:Name(\!""||plotcols[i]||"\!"))),
"
);
eval(parse("dt << Distribution(stack(1),"||str||");"));
win << Close Window;
)
)
);