Sommando tutte le colonne con i nomi memorizzati in un elencoHo creato un elenco di colonne contenenti all'incirca lo stesso nome di seguito:
Xlista = {};
ListaY = {};
for(i = 1, i < ncols(dt2), i++,
Se(
contiene(dt2:i<< get name, "XXX") > 0, insert into(Xlist, dt2:i<< get name),
contiene(dt2:i<< get name, "YYY") > 0, insert into(Ylist, dt2:i<< get name),
)
);
Vorrei creare una nuova colonna che mi darà una somma di Xcolumn e Ycolumn. Non funziona affatto bene per me. Non devo fare qualcosa di giusto... Per favore aiuto.
dt2 << Nuova colonna( "Xsum", Numerico, Continuo, Formato( "Migliore", 12 ),
Formula(
sum(eval(Xlista)),
)
);
Ri: Sommando tutte le colonne con i nomi memorizzati in un elencoWow Jim, grazie,
Funziona perfettamente.
Ri: Sommando tutte le colonne con i nomi memorizzati in un elencoLa sezione della formula all'interno di una nuova colonna non viene analizzata e valutata come ci si potrebbe aspettare.Ho scoperto che il modo migliore per gestirlo è generare una stringa letterale della frase Nuova colonna completa, esattamente come la vorresti se la digitassi manualmente, e quindi eseguire quella riga.Il codice seguente lo fa
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 ||") ) );"));