と呼ばれるデータテーブルへのポインタがあると仮定しています
dtInput
しかし、呼び出されたものではありません
dtIn
私は同様の問題で立ち往生しています。 1 つの列で除算演算を実行してから、テーブルを転置する必要があります。これを実行しようとすると問題が発生します。
dtIn << New Column("Max Size ",Character,format("best",8),Formula(
:Name("Max Size") = (2500/:Min Size))
);
//check for empty columns and delete if any
dt = Current Data Table();
names = dt << Get Column Names();
dt1 = dt << Missing Data Pattern(columns(Eval(names)), invisible);
n = N Row(dt1);
For(i = N Col(dt), i >= 1, i--,
If(Col Sum(Column(dt1, i + 3)) < n,
Remove From(names, i)
)
);
Try(dt << delete columns(names));
Close(dt1, nosave);
//Get all coulmn names
allcolnames = dt << get column names(string);
show(allcolnames);
for (i = 1, i <= nitems(allcolnames), i++,
column(dt, allcolnames[i]) << data type(Character,"Nominal");
);
しかし、式のためにエラーが発生します-
Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, 2500 / /*###*/:Min Size/*###*/
Formula evaluation errors have been ignored
あなたの式には除算が含まれています。 この計算には数値データ列が必要です。 結果は、文字データ型の新しい列に設定されます。 それが必要な場合は、データ型を満たすために Char() 関数内で除算をラップします。
最初に集計テーブルを作成してから数式列を追加するには、作成時にテーブルへの参照を保存します。
//Save reference to the newly created summary table.
dt = Data Table( "Thickness" ) << Summary( Group( :Bar ), N, Mean( :Thickness 01 ) );
//Send a message to the new table to create the new column.
dt << New Column( "New formula column",
Character,
Formula(
If( :Name( "Mean(Thickness 01)" ) > 0.04,
"normal",
"thin"
)
)
);