使用 For 循环创建新列并为每列指定自己的名称和公式大家好,
我有一个包含值和列标题的大型数据表 test1、test2、test3、test4、...、test800。 其中一些值是负数,我想获取我在列表“Datalist_log_2”中定义的所有列,并创建一个名为“test1_pos”的具有绝对值的新列。 (对于每个测试)。
Datalist_log_2 = {test1, test2, test5, test319};
wmax = N Items( Datalist_log_2 );
For ( w = 1, w <=wmax, w++,
Temp12 = Char(Datalist_log_2[w]);
NewColName = Temp12||"_pos"; //not sure if I need to do this extra round, but it works. Will figure that out myself.
NewColumn(NewColName, Numeric, Continuous, Formula(Abs(Datalist_log_2[w])))
);
问题似乎是 Formula() 试图在第一次迭代中建立变量“test1”的绝对值,但我当然不想要 sqrt(test1*test1)。 相反,我希望新创建的列获得名称为“test1”的引用列的绝对值。
非常感谢你的帮助
回复:使用 For 循环创建新列并为每一列指定自己的名称和公式这很好用,谢谢
回复:使用 For 循环创建新列并为每一列指定自己的名称和公式以下是对您当前代码的修改,使用的方法与我在上一篇文章中传递给您的方法相同“在可变性图表中组合 For 循环和 Dispatch() 命令” .如果您无法解释正在发生的事情,我建议您查看脚本指南以获取解释。
帮助==>书籍==>脚本指南
Datalist_log_2 = {test1, test2, test3};
For( w = 1, w <= N Items( Datalist_log_2 ), w++,
Eval(
Substitute(
Expr(
New Column( Char( Datalist_log_2[w] ) || "_pos",
Numeric,
Continuous,
Formula( Abs( __Col__ ) )
)
),
Expr( __col__ ), Parse( ":" || Char( Datalist_log_2[w] ) )
)
)
);回复:使用 For 循环创建新列并为每一列指定自己的名称和公式多么及时,看看这个JSL 食谱文章它做的事情非常相似。只需指定您自己的要更改的列列表,然后修改新的列名和公式。
我建议选择列并使用 Current Data Table() << Get Selected Columns 消息将列表写入日志,然后您可以将其复制并粘贴到您的代码中。