Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Sie sind auf ein Problem gestoßen, bei dem die Zeilen mit mehreren Spaltennamen nicht korrekt verarbeitet wurden.Hier ist mein Versuch, Ihr Problem zu lösen.

Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
current data table(dt);
// Build execution string
sumString = "";
for each row(
if(:Yield SummaryBins != "",
i=1;
while(word(i,:Yield SummaryBins,"[] ") != "",
sumString = sumString || ", :\!"" || word(i,:Yield SummaryBins,"[] ") || "\!"n";
i++;
)
)
);
// Remove first comma
sumString = substr(sumString, 1);
// Execute new column string
eval(parse("dt2<<NEW column=""></NEW>Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Danke Jim.
Dein Code funktioniert. Ich möchte separate Spalten für jede Gruppe erstellen.
Zum Beispiel: Im folgenden Fall gibt es zwei Gruppen Opens und Shorts, die den jeweiligen Spaltennamen enthalten.
Ich möchte zwei verschiedene Spalten mit einer Formel haben, die die jeweiligen Werte summiert
Spalte 1 (Summe von Spalte (39, 41, 43)) und Spalte 2 (Summe von Spalte (38, 40, 42)) in der Zusammenfassungstabelle

Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Es geht nur darum, den von mir bereitgestellten Code zu erweitern.
Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
Current Data Table( dt );
// Build execution string
openString = shortsString = "";
For Each Row(
If( :Yield SummaryBins != "",
If( :Yield SummaryLabel == "Opens",
i = 1;
While( Word( i, :Yield SummaryBins, "[] " ) != "",
openString = openString || ", :\!"" || Word( i, :Yield SummaryBins, "[] " ) || "\!"n";
i++;
);
);
If( :Yield SummaryLabel == "Shorts",
i = 1;
While( Word( i, :Yield SummaryBins, "[] " ) != "",
shortsString = shortsString || ", :\!"" || Word( i, :Yield SummaryBins, "[] " ) || "\!"n";
i++;
);
);
)
);
// Remove first comma
openString = Substr( openString, 1 );
shortsString = Substr( shortsString, 1 );
// Execute new column strings
Eval( Parse( "dt2<<NEW column=""></NEW>
Bitte nehmen Sie sich die Zeit, den bereitgestellten Code zu studieren und mit zusätzlichen Fragen zu antworten, wenn Sie die Funktionsweise des Codes nicht verstehen.
Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Natürlich kann es .... was sind die Regeln?Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Hi @txnelson , kannst du raten?
Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Ich habe aus Ihrer Beschreibung gelesen, dass die Regel, die Sie haben, darin besteht, eine neue Spalte für jede Zeile in der Bedingungstabelle zu erstellen, die einen Wert in der Spalte Yield SummaryLabel enthält.
Ich schlage daher vor, dass Sie jede Zeile in der Bedingungstabelle durchlesen, und wenn Sie eine Zeile mit einem Wert in der Spalte Yield SummaryLabel finden, erstellen Sie die neue Spalte.
Es gibt einen Fall, in dem Sie ein Problem haben.Zeile 14, in der SYL_Yield angegeben ist, hat einen Wert von 1 für Yield SummaryBins.Es gibt keine Spalte namens "1".

Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Zeile 14 kann ausgeschlossen werden. Kannst du den Code teilen? Ich wollte nur darauf hinweisen und mir ein Bild machen
Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?Names Default To Here( 1 );
dt = Data Table( "Condition table" );
dt2 = Data Table( "Soft Bin Summary" );
Current Data Table( dt );
// Rule: Create a new Summary Column for each row in the Condition Table
// that has a value in the Yield SummaryLabel column
For( i = 1, i <= N Rows( dt ), i++,
If( dt:Yield SummaryLabel[i] != "",
theString = "";
k = 1;
While( Word( k, dt:Yield SummaryBins[i], "[] " ) != "",
theString = theString || ", :\!"" || Word(
k,
dt:Yield SummaryBins[i],
"[] "
) || "\!"n";
k++;
);
theString = Substr( theString, 1 );
Eval(
Parse(
"dt2<<NEW column=""></NEW>
Die einzige Vergütung, die Community-Mitglieder dafür erhalten, anderen Mitgliedern zu helfen, ist die Befriedigung, die von den Mitgliedern kommt, denen sie geholfen haben, autarker zu werden.Das Ausschneiden und Einfügen des Arbeitscodes einer anderen Person ist kein guter Weg, um unabhängig zu werden.
Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?@txnelson Danke schön. Sehr geschätzt.
Kann man das dynamisch machen? Ich habe Fälle, in denen es mehr als 2 Gruppen gibt. Das Schreiben einer separaten String-Ausführungsfunktion wäre mühsam.
Ich habe unten eine Referenztabelle angehängt
Betreff: Wie erstelle ich eine Spaltenformel mit einem Spaltennamen aus einer Liste?@txnelson Die Regeln sind ähnlich wie im vorherigen Beispiel.
Erstellen Sie jede separate Spaltengruppe mit einer Formel, die die jeweiligen Klassen summiert.
Ich möchte eine Spalte in der Soft-Bin-Zusammenfassungstabelle erstellen, in der alle Spaltennamen-Bins in der Formel hinzugefügt werden.
Zum Beispiel: Erstellen Sie eine IDD Currents-Gruppenspalte mit Formel (Summe ( Spalte ("52", "42", "49") )),
Erstellen Sie eine offene Gruppe Spalte mit Formel (Summe(Spalte ("39", "41","43") ))
und ebenso für die verbleibenden Labelgruppen in der Labelspalte „Ertragszusammenfassung“.
So erstellen Sie eine Spaltenformel mithilfe eines Spaltennamens aus einer ListeHallo,
Ich möchte eine neue Spalte in der 2. JMP-Tabelle erstellen mit einer Formel, die einfach die in der Liste enthaltenen Spalten summiert (in dem Code, dem ich den Spaltennamen zugewiesen habe). binss.
Zum Beispiel: Die Liste enthält die Spaltennamen „39“, „41“, „43“. Ich möchte eine neue Spalte in der Soft-Bin-Zusammenfassungstabelle erstellen und alle diese in die Formel einfügen
Ich kann nicht herausfinden, was ich falsch mache, wenn ich von der Liste {""} der Spalten zum Verweis auf die Spalten gehe.
Jede Hilfe wird sehr geschätzt.
Hier ist der Code, den ich ausprobiert habe
Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
Try( For Each Row( :Yield SummaryBins = Word( 1, :Yield SummaryBins, "[]" ) ) );
grouplist = dt:Yield SummaryBins << get values;
For( i = N Items( grouplist ), i >= 1, i--,
If( grouplist[i] == "",
Remove From( grouplist, i, 1 ),
));
binss = {}; /// list contaiting bin value
For( i = 1, i <= N Items( grouplist ), i++,
If( Contains( grouplist[i], " " ),
Insert Into( binss, grouplist[i] )
)
);
adad = Words( binss[1], " " );
F = Eval Expr( Sum( Expr( adad ) ) );
/// Something doesn't seem to right in the below loop
For( i = 1, i <= N Items( binss ), i++,
dt2 << New Column( binss[i], "Numeric", "Continuous", Format( "Percent", 12, 2 ), Formula( Name Expr( F ) ) ););
Danke,
Jack
Erweiterte statistische ModellierungDatenexploration und -visualisierungMassenanpassungQualitäts- und Verfahrenstechnik