使用 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 消息將列表寫入日誌,然後您可以將其複制並粘貼到您的代碼中。