キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
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.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

同じスクリプトで作成された複数のデータテーブル

RosDima
Level II

こんにちは、みんな、

 

同じスクリプトで最初に作成したデータテーブルから 2 番目のデータテーブルを作成しようとしていますが、可能ですか?

 

例:
dt_= 開く(path_pst);

 

//最初のデータテーブル

start = 新しいテーブル("W",
新しい列("S")、
新しい列("Z")、
新しい列("X")、
新しい列("Y")、
新しい列("E")、
新しい列("W")、
新しい列("S")、
行の追加(545)
);

 

// いくつかの計算

for(i=1,i<=545,i++,
W:B[i] = ((dt_ - dt_*60)/8;
W:S[i] = dt_[i];
W:X[i] = dt_[i]/10000000;
W:Y[i] = dt_[i]/10000000;
W:E[i] = dt_[i];
W:W[i] = dt_[i];
W:S[i] = dt_[i];
);

 

// 2 番目のデータ テーブルを作成します

start = 新しいテーブル("WIWM",
新しい列("Si")、
新しい列("Ba")、
新しい列("X1")、
新しい列("Y1")、
新しい列("En")、
新しい列(「和」)、
新しい列("M")、
行を追加(109)
);

 

//作成された最初のデータ テーブルに基づいて 2 番目のデータ テーブルを計算します

 

for (i=1, i<=109,i++,
WIWM:Ba[i] = (W:B[i+109]+W:B[i+218]+W:B[i+327]+W:B[i+436])/4;
WIWM:Si[i] = W:S[i];
WIWM:X1[i] = W:X[i];
WIWM:Y1[i] = W:Y[i];
WIWM:En[i] = W:E[i];
WIWM:Wa[i] = W:W[i];
);

 

最初のデータ テーブルが期待どおりに表示された後、2 番目のデータ テーブルには期待どおりの行番号が表示されますが、空白になっています (条件が実行されないため)。

スクリプトを分離する場合、最初の部分で最初の計算を実行して保存し、保存されたデータ テーブルで 2 番目の部分を実行した後、2 番目のデータ テーブルの計算を完了します。

 

ありがとう。

 

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

1 件の受理された解決策

受理された解決策
txnelson
Super User

Re: 同じスクリプトで複数のデータ テーブルが作成される

あなたの脚本は私に新しいことを教えてくれました。それに関するドキュメントは見つかりませんでしたが、スクリプトはそれが機能することを示しています。

コードでは、次のようにしてデータテーブルの行と列を参照しています。

データテーブル名 : 列名[行]

したがって、指定すると

開始 = 新しいテーブル ( "W"、新しい列 ( "S")、 .....

行「5」の列「S」を次のように参照します。

W:S[5]

そしてどうやらそれはうまくいきます。ただし、スクリプトの後半で、指定したデータ テーブルに対して同じロジックを使用しようとします。

開始 = 新しいテーブル( "WIWM"、新しい列( "Si")....

そして、W という名前のデータテーブルを参照しようとしました。

WIWM:SI[1] = W:S[1];

そしてそれはうまくいきません。

問題は、データ テーブルの名前空間参照を設定する適切な方法は、データ テーブル名ではなく、代入ステートメントを使用して名前空間名を割り当てることであるということです。新しいデータテーブルが作成されるまで、どうやら JMP はデータテーブル名を名前空間として使用し、その後データテーブル名の名前空間リンクを失うようです。

肝心なのは、行を変更してもコードは正常に動作するということです

開始 = 新しいテーブル("W",

W = 新しいテーブル("W",

開始 = 新しいテーブル("WIWM",

WIWM = 新しいテーブル("WIWM",

 

最後に、何らかのファイルを開き、それを次のように参照します。

dt_ = open(path_pst);

何を開いているのですか?マトリックスだと思います。コード内で実際に何が起こっているのかをより深く理解できるよう、この件について再度ご連絡いただけますか。

7件の返信7
Craige_Hales
Super User

Re: 同じスクリプトで複数のデータ テーブルが作成される

データテーブルを使用する物体NewTable によって返される関数変数がどのテーブルにあるかを確認します。 テーブル名前変数のスコープには使用されません。 3 番目の割り当てでは、3 つのテーブルすべてを使用します。 すべてに一意の名前を付けましたが、スコープ指定ではその必要はありません。 dt3:たとえば、次のように設定します。範囲、または、この例では後続の変数 z を探す場所です。

dt1 = New Table( "table name A", New Column( "x", values( [1 2 3] ) ) );
dt2 = New Table( "table name Squares", New Column( "y" ), addrows( 3 ) );
dt3 = New Table( "table name Cubes", New Column( "z" ), addrows( 3 ) );

For( i = 1, i <= N Rows( dt1 ), i++,
    dt2:y[i] = dt1:x[i] ^ 2;
    dt3:z[i] = dt1:x[i] * dt2:y[i];
);

undefinedsmall table of Cubes

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

txnelson
Super User

Re: 同じスクリプトで複数のデータ テーブルが作成される

あなたの脚本は私に新しいことを教えてくれました。それに関するドキュメントは見つかりませんでしたが、スクリプトはそれが機能することを示しています。

コードでは、次のようにしてデータテーブルの行と列を参照しています。

データテーブル名 : 列名[行]

したがって、指定すると

開始 = 新しいテーブル ( "W"、新しい列 ( "S")、 .....

行「5」の列「S」を次のように参照します。

W:S[5]

そしてどうやらそれはうまくいきます。ただし、スクリプトの後半で、指定したデータ テーブルに対して同じロジックを使用しようとします。

開始 = 新しいテーブル( "WIWM"、新しい列( "Si")....

そして、W という名前のデータテーブルを参照しようとしました。

WIWM:SI[1] = W:S[1];

そしてそれはうまくいきません。

問題は、データ テーブルの名前空間参照を設定する適切な方法は、データ テーブル名ではなく、代入ステートメントを使用して名前空間名を割り当てることであるということです。新しいデータテーブルが作成されるまで、どうやら JMP はデータテーブル名を名前空間として使用し、その後データテーブル名の名前空間リンクを失うようです。

肝心なのは、行を変更してもコードは正常に動作するということです

開始 = 新しいテーブル("W",

W = 新しいテーブル("W",

開始 = 新しいテーブル("WIWM",

WIWM = 新しいテーブル("WIWM",

 

最後に、何らかのファイルを開き、それを次のように参照します。

dt_ = open(path_pst);

何を開いているのですか?マトリックスだと思います。コード内で実際に何が起こっているのかをより深く理解できるよう、この件について再度ご連絡いただけますか。

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

Craige_Hales
Super User

Re: 同じスクリプトで複数のデータ テーブルが作成される

ありがとうジム。 これをさらに調査するリストに追加します...あなたと同じように、私もそのようなものがあるとは知りませんでした。

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

RosDima
Level II

Re: 同じスクリプトで複数のデータ テーブルが作成される

やあ、

 

早速のリプレイありがとうございます。

はい、行列を使用しています。最初の行列は n 列、545 行です (列番号関数を使用できますが、番号を確認するためのものです)

最初の実際のデータ テーブルから、フィルターをかけて、545 行と行列を含む新しいデータ テーブルを作成する必要があります。

その後、「最初のもの」から別の計算を実行し、最終的に 109 行と martix を含む「2 番目のもの」を取得する必要があります。

 

ありがとう。

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

txnelson
Super User

Re: 同じスクリプトで複数のデータ テーブルが作成される

あなたは行列を扱っているので、なぜデータをデータテーブルに入れて、そのデータテーブルを行列ホルダーのように扱うのかという質問をします。スクリプトで実行しているすべてのステップは、行列を使用してオープン JSL で簡単かつ迅速に実行できます。

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

RosDima
Level II

Re: 同じスクリプトで複数のデータ テーブルが作成される

例を挙げてもらえますか?

ありがとう

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

Craige_Hales
Super User

Re: 同じスクリプトで複数のデータ テーブルが作成される

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