ファイルインポート後のスクリプトが実行されないこんにちは、私はディレクトリから多数のファイルをインポートし、それらを 1 つの大きなファイル (45 ファイル) に積み上げています。1 つの大きなファイルにインポートした後、スクリプトはデータセットをクリーンアップし、列と行を追加します。私が遭遇した問題はスクリプト全体を一緒に実行すると、スクリプトはエラーになります。最初にインポートを実行し、ファイルが jmp にロードされるのを待ってから、コードの 2 番目の部分を実行すると、機能します。 その間にデータをインポートするのに十分な時間である wait(150) がありましたが、それでも機能しません。エラー メッセージには、「"Column" Column/*###/(j) のアクセスまたは評価で無効な引数が表示されます。 PVOTC 更新のインポート直後のスクリプトも実行されないことに気付きました。 以下は私のコードです。ご協力をお願いします。
files = Files In Directory( loadPath);
For( i = 1, i <= N Items( files ), i++, //previous steps non drb or already parsed)
subLoadPath = loadPath ||files[i];
stepID = num(word(2,word(-1,subLoadPath,"/" ),"_"));
If( Is directory(subLoadPath) & stepID >= 11, // 11 is the step started to parse
tableName = word(-1,subLoadPath,"/" );
tableName_flow = word(-2,subLoadPath,"/" );
dt = Multiple File Import(
<<SET folder="">= 1, j--,
If( (Col N Missing( Column( j ) ) / N Row()) == 1,
dt << delete columns( j )
)
);
Wait(5);
dt << Clear Column Selection(); </SET>スクリプティングRe: ファイルインポート後のスクリプトが実行されないおそらく複数のテーブルが開いています。このように明示的にしてみてください
If( (Col N Missing( Column(dt, j ) ) / N Row()) == 1
列関数は、予想とは異なるテーブル (実際には現在のテーブル) を使用していると思います。 列関数に dt を追加すると、どのテーブルかがわかります。それ以外の場合は、現在のテーブルです (一度に実行したときに追いつかなかった可能性があります)。
Re: ファイルインポート後のスクリプトが実行されないクレイジ
ご返信いただきありがとうございます。変更を加えましたが、コード全体を実行することはできません。PVOTC 欠損値は更新されません。また、同じエラー メッセージ「'Column' のアクセスまたは評価で引数が無効です。Column/*」が表示されます。 ###*/(j)"
</CODE><CODE class=" language-jsl">dtImpt = Multiple File Import(
<<SET folder="">= 1, j--,
If( (Col N Missing( Column( j ) ) / N Row()) == 1,
dt << delete columns( j )
)
);
dt << Clear Column Selection(); </SET>
</CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-390303" slang="en-US" mode="NONE">Re: ファイルインポート後のスクリプトが実行されない</LINGO-SUB><LINGO-BODY id="lingo-body-390303" slang="en-US" mode="NONE"><P>後</P><PRE><CODE class=" language-jsl">dt = Multiple File Import(...) << Import Data;
dt は、インポートされるテーブルが 1 つだけの場合でも、データ テーブルのリストを保持します。
wait(150) は必要ありません。
1 つのテーブルのみがインポートされた場合、dt[1] が現在のデータ テーブルになります。
編集: 回避できる場合は、 current data table() を使用しないでください。 可能であれば、dt[1] のような明示的なハンドルを使用してください。 現在のデータ テーブルは、JSL が発明される前の JMP のように動作しようとする JSL 関数であり、最後に触れたテーブルが次のプラットフォームで使用されるテーブルになります。