將名稱存儲在列表中的所有列相加我創建了一個列列表,其中包含以下大致相同的名稱:
X列表 = {};
Y列表={};
for(i = 1, i < ncols(dt2), i++,
如果(
包含(dt2:i<< 獲取名稱, "XXX") > 0, 插入(Xlist, dt2:i<< 獲取名稱),
包含(dt2:i<< 獲取名稱, "YYY") > 0, 插入(Ylist, dt2:i<< 獲取名稱),
)
);
我想創建一個新列,它將給出 Xcolumn 和 Ycolumn 的總和。 它對我來說根本不起作用。 我一定沒有做正確的事情...... 請幫忙。
dt2 << 新列( "Xsum", 數字, 連續, 格式( "最佳", 12 ),
公式(
總和(評估(Xlist)),
)
);
回复:將名稱存儲在列表中的所有列相加哇吉姆,謝謝你,
這很完美。
回复:將名稱存儲在列表中的所有列相加新列中的公式部分不會像人們預期的那樣進行解析和評估。我發現,處理此問題的最佳方法是生成完整的“新列”短語的文字字符串,就像您手動鍵入它時所希望的那樣,然後執行該行。下面的代碼就是這樣做的
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 ||") ) );"));