Betreff: JMP-Skript für durchschnittliche SpalteHallo @hsjoyner ,
Haben Sie die Funktion column() untersucht? Anstatt einen Spaltennamen zu verwenden, können Sie dessen Index verwenden.Dies könnte in einer for()-Schleife nützlich sein.

Betreff: JMP-Skript für durchschnittliche SpalteWenn die Anzahl der Spalten festgelegt ist, können Sie die fest codieren bedeutet ,
wenn das "etc." ist variabel, Sie brauchen wahrscheinlich einige Einfügen in Und Eval(Ersatz()):
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
offset = 5;
nc = N Col( dt );
length = 10;
groups = Floor((nc - offset) / length);
For( group = 1, group <= groups, group++,
myFormula = Expr( Mean() );
For( i = 1, i <= length, i++,
Insert Into( myFormula, NameExpr(As Column( offset + (group-1)*length +i ) ))
);
myName = "average" || Char( group );
Eval(Substitute(Expr(new Column(__myName__,Formula(__myFormula__))),Expr(__myFormula__),NameExpr(myFormula),Expr(__myName__),NameExpr(myName) ));
);
Betreff: JMP-Skript für durchschnittliche SpalteHier ist ein Skript, von dem ich hoffe, dass es das erstellt, wonach Sie suchen.Es erstellt neue Spalten, die durchschnittlich Gruppen von 10 Spalten für eine unbestimmte Anzahl von Spalten bilden.

names default to here(1);
// Create an example data table to use for illustration of how to
// create the sets of average columns
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Delete the first 3 columns to match the description
// of the suggested data table structure
dt << delete columns({"lot_id","wafer","wafer ID in lot ID"});
// Create new columns that have the groups of 10 columns
startingNCol = N Cols(dt);
start = 2;
groupSize = 10;
while(start+groupSize<=startingNCol,
eval(substitute(expr(
dt << New Column("Average " || char( start ) || "-" || char(start + groupSize),
set each value(Mean(current data table()[row(),index(theStart,theEnd)])));
),
expr(theStart), start, expr(theEnd), start+groupSize
));
start=start+groupSize;
);
Betreff: JMP-Skript für durchschnittliche SpalteMean(current data table()[row(),index(theStart,theEnd)])
wow, sehr elegant - viel schöner als den Mittelwert manuell mit den Spaltenbezügen zu füllen!
JMP-Skript für die DurchschnittsspalteIch habe einen SEHR unerfahrenen JMP-Skriptautor, der versucht, einen Befehl zu schreiben, um einen Satz von Spalten mit den Durchschnittswerten in eine neue Spalte zu mitteln. Dies entspricht dem Hervorheben der Spalten und der anschließenden Auswahl von „Neue Formelspalte“ > „Kombinieren“ > „Durchschnitt“. Allerdings kann ich in der Skriptbibliothek oder online nichts finden, was mir dies ermöglicht. Hat jemand Vorschläge?
Um eine zusätzliche Komplikation hinzuzufügen, möchte ich, dass das Skript die Spalten 2–11, 12–21, 22–31 usw. verwendet und den Durchschnitt jeder Spaltengruppe bildet. Die Spalten haben keine festgelegten Namen, daher kann ich die Spaltennamen nicht einfach in das Skript einfügen (es ist nicht möglich, die Namen konsistent zu machen, da es sich bei den Spaltennamen um Beispielnamen handelt und ich sie so beibehalten muss). Die Anzahl der Spaltengruppen in jeder JMP-Datei ist nicht konsistent, da die Anzahl der Stichproben in jeder JMP-Datei stark variieren kann. Gibt es eine einfache Möglichkeit, dies zu tun?
Ich verwende JMP 17.0.0 auf einem Mac, falls das hilfreich ist. Jede Hilfe ist willkommen!
Datenmischung und -bereinigungMac OSBetreff: JMP-Skript für DurchschnittsspalteWarum liefert die Formelspalte nicht dieselben Werte wie die Spalte „Durchschnitt 2 – 12“?
Mittelwert( :NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1 )
Bearbeiten: Ich war beim Schreiben des Kommentars abgelenkt und die obige Formel ergibt einen passenden Wert.
Nachtrag: Mean() scheint sehr empfindlich auf Spaltenformateigenschaften zu reagieren, da ich in meiner eigenen Datentabelle unterschiedliche Ergebnisse erhielt, wenn die Spalten auf „Feste Dez.-Breite 15 Dez. 3“ oder „Beste Breite 12“ eingestellt waren. Gibt es Empfehlungen zur Vermeidung dieses Problems?
Betreff: JMP-Skript für DurchschnittsspalteHallo @hsjoyner ,
Wenn ich das richtig verstehe und Sie den Mittelwert für alle Spaltengruppen benötigen, sollten Sie in der Lage sein, eine Liste der Spaltengruppen in der Tabelle abzurufen und dann diese Gruppennamen zu durchlaufen, um Formelspalten zu erstellen, die die Spalten in jeder Gruppe dynamisch abrufen. Etwa so:
dt = Current Data Table();
groupNames = dt << get column groups names;
For Each( {groupName, index}, groupNames,
Eval(
Eval Expr(
dt << New Column( groupName || " Mean",
Formula( Mean( Current Data Table() << get column group( Expr( groupName ) ) ) )
)
)
)
);
Ich hoffe, das hilft!
@julianisch
Bearbeiten: Nachdem ich Ihre Nachricht und die Antworten noch einmal gelesen habe, ist mir aufgefallen, dass Sie von Spaltengruppen (also Spaltensätzen) sprechen und nicht von Spalten, die in der Tabelle tatsächlich gruppiert sind. Diese Antwort wird Ihnen also nicht weiterhelfen, aber ich lasse sie hier, falls jemand in diese Situation gerät!:grinning_face: