将名称存储在列表中的所有列相加我创建了一个列列表,其中包含以下大致相同的名称:
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 ||") ) );"));