キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use to use Text Explorer to glean valuable information from text data at April 25 webinar.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

選択した列を使用して計算を実行する

KellyT
Level II

こんにちは、

これに適したスクリプトソリューションを見つけるのに苦労しています。  いくつかの列を選択して、それらの列全体で計算を実行したいと思います。  選択した列は柔軟で、2つある場合もあれば、この計算を実行するために10列以上になる場合もあります。

 

例えば 

式sqrt(sum(A ^ 4、B ^ 4、C ^ 4)1 2 3を含むABCの新しい列... 4 5 6 ... 7 8 9 ...

 

この時点で、選択した列を抽出するスクリプトがあります。しかし、それらが列名のリストに入ると、上記の数式を使用して列を合計する方法がわかりません...

dt =現在のデータテーブル(); cols = dt <<選択した列を取得します。

手伝ってくれてどうもありがとう!

 

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

2 件の受理された解決策

受理された解決策
txnelson
Super User

Re:選択した列を使用して計算を実行する

ここでは、JSLを使用して、

Names Default To Here( 1 );
dt = Current Data Table();

dt << New Column( "Calc",
 formula(
  cols = dt << get selected columns;
  mat = [];

  For( i = 1, i <= N Items( cols ), i++,
   mat = mat || Column( cols[i] )[Row()]
  );
  mat = Sqrt( Sum( mat ^ 4 ) );
 )
);

dt:calc << delete formula;

問題を処理する数式列を作成する方法

 

txnelson
Super User

Re:選択した列を使用して計算を実行する

マトリックスオペレーターがJSLで持っている非常に優れた機能に基づいて、使用する方法を選択しました。  ステートメント

mat = Sqrt( Sum( mat ^ 4 ) );

は、行列を使用して計算をどのようにして簡潔にすることができるかを示しています。 

ただし、行列演算子を使用するには、データが行列に含まれている必要があります。したがって、各行について、行列Matは最初に空行列になるように設定されます

mat = [];

次に、For()ループは、<< Get Selected Columnsで指定された各列を取得し、指定された行のその列の値をマトリックスの新しい要素としてマトリックス "Mat"に追加します。  現在の行の列の値を行列に「連結」しています。

mat = mat || Column( cols[i] )[Row()]
3件の返信3
txnelson
Super User

Re:選択した列を使用して計算を実行する

ここでは、JSLを使用して、

Names Default To Here( 1 );
dt = Current Data Table();

dt << New Column( "Calc",
 formula(
  cols = dt << get selected columns;
  mat = [];

  For( i = 1, i <= N Items( cols ), i++,
   mat = mat || Column( cols[i] )[Row()]
  );
  mat = Sqrt( Sum( mat ^ 4 ) );
 )
);

dt:calc << delete formula;

問題を処理する数式列を作成する方法

 

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

KellyT
Level II

Re:選択した列を使用して計算を実行する

ジムありがとう!あなたのスクリプトはいつものようにとても役に立ちます。  JSLをよりよく理解するために、このコード行の機能を詳しく説明してください。

 

mat = mat || Column( cols[i] )[Row()]

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

txnelson
Super User

Re:選択した列を使用して計算を実行する

マトリックスオペレーターがJSLで持っている非常に優れた機能に基づいて、使用する方法を選択しました。  ステートメント

mat = Sqrt( Sum( mat ^ 4 ) );

は、行列を使用して計算をどのようにして簡潔にすることができるかを示しています。 

ただし、行列演算子を使用するには、データが行列に含まれている必要があります。したがって、各行について、行列Matは最初に空行列になるように設定されます

mat = [];

次に、For()ループは、<< Get Selected Columnsで指定された各列を取得し、指定された行のその列の値をマトリックスの新しい要素としてマトリックス "Mat"に追加します。  現在の行の列の値を行列に「連結」しています。

mat = mat || Column( cols[i] )[Row()]

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。