Hallo,
Ich versuche, ein Skript zu schreiben, das eine Spalte verwendet, um dort übereinstimmende Zellen auszuwählen, und dann diese ausgewählten Zeilen verwendet, um den Durchschnitt der Zahlen in der Spalte daneben zu finden, bin mir aber nicht ganz sicher, wie das geht. Hier ist eine Beispieltabelle, woran ich arbeite (die letzte durchschnittliche Spalte ist das, wofür ich ein Skript benötige):
| Passende Spalte: | Zahlen: | Durchschnitt der gruppierten Zahlen |
| a | 2 | 3 |
| a | 4 | 3 |
| b | 2 | 4 |
| b | 4 | 4 |
| b | 6 | 4 |
| c | 3 | 6 |
| c | 6 | 6 |
| c | 9 | 6 |
| d | 2 | 2 |
| d | 2 | 2 |
Ja vielen Dank das hat funktioniert
Dafür brauchen Sie kein Skript. Die Spalte Mittelwert() Funktion im Formeleditor berechnet Mittelwerte nach einer Gruppierungsspalte.
Ich habe eine Datentabelle angehängt, die aus dem von Ihnen geposteten Beispiel erstellt wurde, damit Sie sehen können, wie sie in JMP selbst aussieht.

Es gibt mehrere Möglichkeiten, dies zu erreichen, aber die meiner Meinung nach einfachste ist die Verwendung
Tabellen==>Zusammenfassung
um die Zusammenfassung durchzuführen und dann die Zusammenfassungsdaten wieder in die ursprüngliche Tabelle einzufügen.Hier ist ein einfaches Skript, das Ihre Beispieldaten dazu verwendet
Names Default To Here( 1 );
// Create an example data table
dt = New Table( "Example",
Add Rows( 10 ),
New Column( "Matching Column",
Character,
"Nominal",
Set Values( {"a", "a", "b", "b", "b", "c", "c", "c", "d", "d"} )
),
New Column( "Numbers",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [2, 4, 2, 4, 6, 3, 6, 9, 2, 2] )
)
);
// Pause so one can see the original table
wait(5);
// Summarize the data
dtSum = dt << Summary(
invisible,
Group( :Matching Column ),
Mean( :Numbers ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 ),
output table name( "Means" )
);
// Adjust items in summary data to allow for proper merging
dtSum << delete columns( "N Rows" );
dtSum:Numbers << Set Name( "Average of grouped numbers" );
// Add the summary data to the original data table
dt << Update( With( dtSum ), Match Columns( :Matching Column = :Matching Column ) );
// Clean up the environment
Close( dtSum, nosave );