大家好,我有一個腳本可以為任何具有非常小的值的列創建新的數字列(即將具有單位米的列轉換為毫米或微米以獲得更好的可讀性)。
它似乎運行良好;生成的列沒有問題。 但是後來我在加入其他表時遇到了一些問題,突然這些列不再顯示任何數據。 當我檢查新列中的公式時,我看到它不是源列的名稱,而是來自腳本中循環的 colnames[i] 引用(請參見屏幕截圖)。
Names Default To Here( 1 );
dt = Current Data Table();
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
If( (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))<1e-4 & (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))>0,
If( !Contains( colnames, colnames[i] || "_µm"),
dt << New Column( colnames[i] || "_µm", Formula( As Column( colnames[i] ) * 1e6 ) ) )
,
If( (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))<1e-1 & (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))>1e-4,
If( !Contains( colnames, colnames[i] || "mm"),
dt<<NEW column=""></NEW>
你好@mvanderaa1 ,
這是一個非常常見的問題,您可以嘗試以下鏈接中列出的選項之一嗎?
使用 Eval Insert、Eval Expr、Parse 和 Substitute 將一個表達式插入到另一個表達式中
我的首選是最重要的:
//Eval Expr
For( i = 1, i <= N Items(cols), i++,
Eval( Eval Expr(
dt << New Column(
"2 * " || Char( cols[i] ),
Numeric,
"Continuous",
Formula( As Column( Expr( Char( cols[i] ) ) ) * 2)
)
) )
);