Addieren aller in einer Liste gespeicherten Spalten mit NamenIch habe unten eine Liste mit Spalten erstellt, die ungefähr denselben Namen enthalten:
Xlist = {};
Ylist = {};
for(i = 1, i < ncols(dt2), i++,
Wenn(
enthält(dt2:i<< get name, "XXX") > 0, insert into(Xlist, dt2:i<< get name),
enthält(dt2:i<< get name, "YYY") > 0, insert into(Ylist, dt2:i<< get name),
)
);
Ich möchte eine neue Spalte erstellen, die mir eine Summe aus Xcolumn und Ycolumn liefert. Bei mir funktioniert es überhaupt nicht gut. Ich mache wohl etwas nicht richtig... Bitte helfen Sie.
dt2 << Neue Spalte( "Xsum", Numerisch, Kontinuierlich, Format( "Best", 12 ),
Formel(
sum(eval(Xlist)),
)
);
Betreff: Addieren aller in einer Liste gespeicherten Spalten mit NamenWow Jim, danke,
Das funktioniert perfekt.
Betreff: Addieren aller in einer Liste gespeicherten Spalten mit NamenDer Formelabschnitt innerhalb einer neuen Spalte wird nicht wie erwartet analysiert und ausgewertet.Ich habe herausgefunden, dass der beste Weg, dies zu handhaben, darin besteht, eine Literalzeichenfolge der vollständigen „Neue Spalte“-Phrase zu generieren, genau so, wie Sie sie möchten, wenn Sie sie manuell eingeben würden, und diese Zeile dann auszuführen.Der folgende Code erledigt das
Names Default To Here( 1 );
dt2 = Current Data Table();
Xlist = "";
Ylist = "";
For( i = 1, i < N Cols( dt2 ), i++,
If(
Contains( column(dt2,i) << get name, "XXX" ) > 0, Xlist=Xlist || ":" || char(column(dt2,i) << get name) || ",",
Contains( column(dt2,i) << get name, "YYY" ) > 0, Ylist=Ylist || ":" || char(column(dt2,i) << get name) || ","
)
);
eval(parse("dt2 << New Column( \!"Xsum\!", Numeric, Continuous, Format( \!"Best\!", 12 ), Formula( Sum( "||Xlist ||") ) );"));
eval(parse("dt2 << New Column( \!"Ysum\!", Numeric, Continuous, Format( \!"Best\!", 12 ), Formula( Sum( "||Ylist ||") ) );"));