データテーブルへのフォーミュラマッサージ<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
これらの列から数式を作成および削除するための数式列が何千もあります。
だからプロセスをスピードアップするために私は次の方法で式を追加します。
dt <<式Eval(1)を抑制します。
forループ(
new col(formula)
dt << Formula Eval(0)を抑制します。
dt <<数式を実行します。
;
2番目のforループ
forループ(Try(column(dt、Newcolname [ik])<<式を削除)) ;
削除式メッセージを各列ではなくdatatableに送信する方法はありますか。
式を削除するためのループが追加の5分以上かかるようになっているので。
あらゆる回避策は非常に感謝 。スーパーコンピュータは選択肢ではありません。
データテーブルへのフォーミュラマッサージmichael.anderson
Michaelさん、こんにちは。あなたのアイデアは、行列を使って式を作成することにとって非常に興味深いようです。しかし、私たちがこの方法をどれだけ活用できるかはわかりません。
以下が状況です:私はExcelシートの2列として私の新しいcol名と対応する式をまとめました、left colはテーブルに加えられるべき列の新しい名前です、そして、右側の列は多くの複雑な式を持ちます。
今私はforループを使用してこれらの種類の100または1000式を追加する必要があります(これまでのところ私は知っています)。そのため、FORループは、定数や列名がわかりません。だから私はこれを達成するためにnamexprを使用します。column(dttable、Newcolname [ij])<< set Formula(nameexpr(newcol1))
だから私の質問は、行列に列の値を取得せずに行列と同じように(exprを使用して)同様の方法があるのでしょう<< GetAsMatrix?
newcol1 = 34 * col1 / 54 * col2-col3 / 2
newcol2 = col1 / 54 * col2-col3 / 2
newcol3 = 36 + col1 / 54 * col2-col3 / 2
newcol4 = 37 * 1e6 * col1 / 54 * col2-col3 / 2
ありがとう、 RAM
データテーブルへのフォーミュラマッサージありがとうございました。連結によって新しいテーブルを作成するというあなたのアプローチは素晴らしいです。すべてのテーブル変数と行の順序などは保持しますが、式は含みません。式を削除するためにかかった余分な時間を排除するのに役立ちました。
素晴らしい提案をありがとう。データテーブルへのフォーミュラマッサージ
データテーブルへのフォーミュラマッサージわかりました... あなたが求めているのは、マトリックスとしてデータを扱うことでまだ可能です... 私が提案するのは、データを行列として取得し、その計算を実行してから結果をデータテーブルに書き込むことです。 その後、仕様制限、単位などを追加することができますが、データテーブルから式を追加して削除する必要はありません。 一般的に、速度が低下しているのはデータテーブル自体の変更であり、これは基本的に式を変更するたびに再構築されるということです。
本当にすべてをデータテーブルに保持したい場合は、列の式をEmpty()に設定する方が、削除するよりも速いかもしれません。確かに知るためにそれを試してみる必要があるでしょう。
ベスト、
M
データテーブルへのフォーミュラマッサージこんにちはMさん、
メトリックはデータテーブルを使用するよりもはるかに高速です。分割内の非常に小さな改善を識別するためのローカルデータフィルタを使用する必要があるのでしかし、私はテーブル内のデータが必要です。
ここに含まれるステップはここにあります
1。WとLで生の電気パラメータを正規化するのに必要な公式、例えばIon * W / * Wa。
2。適切な係数を掛けてpA、uA、nA、mV、mWなどの適切な単位にデータを変換すると同時に、スペックの制限が適用されます。
3。ステップ2は、必要とされる生のパラメータにも適用されます。新しい列を相互依存的に変換できるように、ここで式を削除する必要があります。
注意:
1。スペック制限は更新され続けるので、式とスペック制限ファイルをマージすることはできません。だからそれを別々にしておく必要があります。
2。マージンユニット変換もオプションではありません。
RAM
データテーブルへのフォーミュラマッサージram.asra@gmail.com
こんにちは!たぶん一歩戻り、数式を含む数千の列が必要な理由を見つけることがより良い出発点になるかもしれません。
メモリ内の値を行列として計算する方が、データテーブルを使って計算するよりもはるかに高速であることを私は知っています。 これにより、そもそも列が必要なくなります。 今年のディスカバリーでは、この点について実際にかなり健全な議論が行われましたが、ベストプラクティスは、可能な限りスクリプトで列式を使用しないようにすることです。
ユースケースをもう少し理解してもらえますか。
ベスト、
M
データテーブルへのフォーミュラマッサージ私が考えるようになる回避策はConcatenate()の力を削除する式を利用することです。以下のコードはデータテーブルのコピーを作成します - テーブル変数やスクリプトも含みますが式は含みません。
dt = 現在のデータ表 () ; //削除する式を含むテーブル
new_dt = dt << 連結する ( dt_temp = 新しいテーブル ( 「温度」 、新しいコラム ( 「deleteme」 ))) ;
new_dt << 列を削除 ( 「deleteme」 ) ;
閉じる ( dt_temp 、保存しない ) ;