Col-Funktion (Summe) durch Auswahl bestimmter Zeilen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich möchte eine Spalte erstellen, die den Mittelwert oder die Summe einer anderen Spalte berechnet, aber ich möchte die Funktion wie folgt spezifizieren:
Nehmen wir an, wenn wir das Jahr, in dem die Berechnung durchgeführt werden soll, mit „Jahr“ auswählen oder
Nehmen wir an, Spalte (Summe) von NetRevenueWithoutVat nach Jahr oder „NetRevenueWithoutVat“ nach „Monat (Stay Date)“ oder
Col (Summe)-Funktionen bestimmter Zeilennummern ...
Könnte jemand bitte sein/ihr Wissen teilen? Wie mache ich das in Skripten oder durch Eingabe der Funktion Col(Sum) als Formel in eine Spalte?
Die Logik dahinter?
Vielen Dank im Voraus

Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenSie müssten eine separate Spalte erstellen, die eine Gruppierungsspalte für jeden Datumsbereich enthält, den Sie verwenden möchten, oder Sie möchten möglicherweise etwas wie Folgendes verwenden:
Col Sum(
If(
:Event Date >= Informat( "02/01/2001", "mm/dd/yyyy" ) & :Event Date <=
Informat( "02/28/2001", "mm/dd/yyyy" ),
:Total Fatal Injuries,
0
)
)
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenEgal, verstanden!
Spaltensumme(
:Abrechnungsbetrag,
:Datum >= 01.08.2018 & :Datum <= 07.08.2018,
:Kartennummer
)Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenVerzeihen Sie mir, aber ich bin ein neuer JMP-Benutzer. Ich verwende nur den Formeleditor, nicht JSL. Ich bin mir nicht sicher, ob das, was Sie mir geben, für JSL oder den Forum-Editor ist. Kann ich die Bedingungen nicht so in die Formel einbauen?
Col Summe (: Abrechnungsbetrag , :Datum >= 8 / 1 / 2018 & :Datum <= 8 / 7 / 2018 ,:Kartennummer )
Das Problem, auf das ich stoße, besteht jedoch darin, dass JMP es automatisch so korrigiert, dass es sich um eine Division und nicht um eine Datumsformel handelt.
Betreff: Funktion Col (Summe) durch Auswahl bestimmter Zeilen@Mitch103 ,
Versuchen Sie so etwas, wie von vorgeschlagen @MS :
dt = Current Data Table();
dt << Select Where(:Date > StartDate & :Date <ENDDATE></ENDDATE>
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenKönnen Sie diese Formel verwenden und die Logik für eine bestimmte Spalte definieren? Ich versuche beispielsweise, die Dollarbeträge für jeden Datensatz zwischen zwei Daten zu summieren. Die Formel würde also so aussehen:
Col Summe ( :Dollarbetrag, :Datum)
Ich bin mir jedoch nicht sicher, wie ich den Datumsbereich definieren soll.
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenWenn ich es verwende
Col Sum( :ColumnName, Selected() )
Ich erhalte die folgende Fehlermeldung:
Row number not set or in range in access or evaluation of 'Selected' , Selected/*###*/()
Könnte mir jemand sagen, was passieren könnte?
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenIhr Beispielcode:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << select Where(:age ==12);
n = Col Sum(:age,Selected());
Die Funktion Col Sum() funktioniert in offenem Code anders als in einer Formel. Wenn bei der Verarbeitung der Daten im offenen Code das zweite Element vorhanden ist, kann JMP die Anweisung nicht ausführen, da der resultierende Wert mehr als einen Wert zurückgibt. Das heißt, der zurückgegebene Wert in Ihrem Beispiel würde erfordern, dass die Variable „n“ zwei Werte hat. Die Col Sum() für ausgewählte Zeilen und die Col Sum() für nicht ausgewählte Zeilen. Ich nehme an, dass JMP eine Liste von Werten zurückgeben könnte, aber als @MS angegeben, dass hierfür die Funktion Summarize() verwendet wird. Daher ist das zweite Element in der Funktion Col Sum() in offenem Code nicht gültig.
Betreff: Funktion Col (Summe) durch Auswahl bestimmter Zeilen@txnelson :
Danke . Obwohl ich mit diesem Ansatz vertraut bin, hat mich die Art und Weise überrascht @MS löste das gleiche Problem.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Conditional sum", Formula(Col Sum(:age, Selected()))); // This Works
dt << select Where(:age == 12);
n = Col Sum(:age,Selected()); // This yields an error Obwohl ich verstehe, dass Zeile 4 leicht durch Ihre Lösung ersetzt werden kann, d. h. und das ist meine Goto-Lösung,
n = Sum(:age[dt << Get Selected Rows]);
Ich verstehe nicht, warum diese Codezeile in meinem Fall zu einem Fehler führt.
n = Col Sum(:age,Selected());
Die Dokumentation zeigt nicht, dass diese Funktion vorhanden ist (zumindest in JPM 12) – ich war also wirklich begeistert von diesem neuen Trick, aber in diesem Fall schien er zu funktionieren @MS Habe die Frage vorhin gelöst. Kann einer von Ihnen erklären, warum der exakt gleiche Code in einer Spaltenformel funktioniert, aber außerhalb einen Fehler auslöst?
Uday
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenDie Col Stat()-Funktionen sind hauptsächlich in Spaltenformeln nützlich und funktionieren mit optionalen Gruppierungsargumenten überhaupt nicht als eigenständige Funktionen (verwenden Sie stattdessen Summarize()).
Mein alter Beitrag sollte zeigen, wie man eine Spalte dynamisch aktualisiert, indem man einfach Zeilen manuell (oder per Skript) auswählt. Eher ein netter Trick als irgendetwas sehr Nützliches ...
Beispiel:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Conditional sum", Formula(Col Sum(:age, Selected())));
dt << select Where(:age == 12);
// Or select rows by hand and see how numbers change dynamically
Betreff: Col-Funktion (Summe) durch Auswahl bestimmter ZeilenSie möchten die Möglichkeit nutzen, Werte in einer Datentabelle als Datenvektor zu referenzieren und ihr die Matrix der ausgewählten Zeilen zu übergeben
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << select Where(:age == 12);
n = Sum(:age[dt << Get Selected rows]);Betreff: Funktion Col (Summe) durch Auswahl bestimmter Zeilen@ian_jmp / @MS / @txnelson - Irgendwelche Gedanken?
Betreff: Col-Funktion (Summe) durch Auswahl bestimmter Zeilen
Funktioniert diese Lösung nur in bestimmten Versionen von JMP?
Weil ich JMP 12 verwende und immer wieder dieser Fehler auftritt
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << select Where(:age ==12);
n = Col Sum(:age,Selected());
Hier ist mein Log
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << select Where( :age == 12 );
n = Col Sum( :age, Selected/*###*/() );
Die Zeilennummer ist beim Zugriff oder bei der Auswertung von „Selected“, Selected/*###*/() nicht festgelegt oder liegt im Bereich.
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenJa, mehr als eine Gruppierungsvariable wird unterstützt.
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenDanke schön!
Das ist es, wonach ich gesucht habe.
Heißt das, ich könnte noch weiter gehen und sagen wir mal Col Summe ( : Nettoumsatz ohne Mehrwertsteuer , : Jahr, :Agentur ) ?
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenVerwenden Sie ColSum() in Spaltenformeln. Die Formel Col Summe ( : Nettoumsatz ohne Mehrwertsteuer , : Jahr ) gibt die Summe (nicht die kumulative Summe) gruppiert nach zurück Jahr .
Probieren Sie diese Formel für eine ColSum() aus, die sich dynamisch mit der Zeilenauswahl ändert:
Col Summe ( : Nettoumsatz ohne Mehrwertsteuer , Ausgewählt () )
Betreff: Funktion Col (Summe) durch Auswahl bestimmter ZeilenDie Antwort kann davon abhängen, was als nächstes passiert. Sie können auf jeden Fall Folgendes tun:
NamesDefaultToHere(1);
// (1) Get some data
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
// (2) Get summary info into a list and a vector
Summarize(groups = By(:sex), groupMeans = Mean(:height));
// (3) Make a table using the summary info
dt2 = NewTable("Height by Gender",
NewColumn("Gender", Character, Nominal, Values(groups)),
NewColumn("Mean Height", Numeric, Continuos, Values(groupMeans))
);
(Weitere Optionen mit Summarise finden Sie im JSL Scripting Guide.)
Wenn Sie Schritt 3 benötigen, ist es möglicherweise besser, entweder „Tabellen > Zusammenfassung“ oder „Analysieren > Tabellieren“ zu verwenden.
Sie können auch über eine beliebige Reihe von Zeilen aggregieren, sofern Sie die Auswahl ausdrücken können.