open()からリストへのデータテーブルの格納こんにちは、
open()キーワードを使用して複数のワークシートを開き、これらのデータテーブルをリストに格納します。
Tables = {};
//normaly I would like to use a for loop here, however the number of worksheets will vary.
Tables = Open ("pathway",
invisible, info about the data..);
//do something with the tables
for (i = 1, i <= NITEMS(Tables), i++,
close(Tables[i], nosave);
);
追加の質問:
また、ユーザー名/パスワードで保護されたsearchengine / libraryを使用して情報を検索し、jmpにダウンロードすることもできますか?
敬具
アンダース
データテーブルをopen()からリストに格納するこんにちは、
はい、私のリストはそのように見えます。
whileループ(file = Tables)を実装することで問題を解決しました。 同じリストを参照しているループが2つあると、JMPが私の参照を見つけられませんでした。私には、Tables = repeat(....)と言うことでTablesはあなたのループの外側で宣言されているようですが、たとえ私があなたのループの外側でTables = {}を宣言したとしても。あなたはこれの理由を知っていますか?
f = Nアイテム(リスト)
しながら ( f > 0 、
私 = 1 ;
dt = 開いた (
ミパス || 飛ぶ [ f ] 、
設定をインポート (
行末 ( CRLF 、 CR 、 LF ) 、
フィールドの終わり ( その他の ( 「;」 ) 、 CSV ( 0 ) ) 、
ストリップ見積もり ( 1 ) 、
引用符としてアポストロフィを使用 ( 0 ) 、
ファイル全体をスキャン ( 1 ) 、
空の列を数値として扱う ( 0 ) 、
CompressNumericColumns ( 0 ) 、
CompressCharacterColumns ( 0 ) 、
CompressAllowListCheck ( 0 ) 、
ラベル ( 1 ) 、
カラム名 ( 1 ) 、
データ開始 ( 2 ) 、
読む行 ( "すべて" ) 、
年ルール ( "20xx" )
) 、
) ;
ファイル [ 私 ] = dt ;
私 = 私 + 1 ;
f--;
……
;
データテーブルをopen()からリストに格納する私は自分のコードを.csvファイルで試してみましたが、うまくいきました(JMP 12.2 for Mac)。それは見えないファイルでも動作します。
のテーブルリストは次のようになります。
見せる ( テーブル )
/ *:
Tables = {DataTable( "Data 1")、DataTable( "Data 2")、DataTable( "Data 3")}。
CSVがJMPのデータテーブルとして正しく開くことを確認します(一時的にオフにします)。見えない )前の操作でテーブルが閉じられていないこと。
データテーブルをopen()からリストに格納するこんにちは、
このコードを私のスクリプトの他のセクションに組み込もうとしましたが、dt = Tables [i]またはdt = Data Table(Tables [i])をTablesのテーブルを参照することができません。例については以下を参照してください。
//デバッグ中に、指定したディレクトリ内のすべてのファイルを開くためにコードを使用しました。テーブルには自分のCSVファイルへの参照が含まれているので、この部分は機能しているようです。
(i = 1、i <= N項目(表)、i ++、の場合
dt = データ表 ( テーブル [ 私 ] ) ; // JMPはTables内のテーブルの参照を見つけることができません。dt = Tables [i]はどちらも動作しません。
dt << 新しいコラム ( "信号" ) ;
dt << 選択した列を移動 ( { "信号" } 、はじめに ) ;
: 信号 << データ・タイプ ( キャラクター ) ;
コル = カラム ( 1 ) ;
dt << 新しいコラム ( 「ソース表」 、キャラクター ) ;
: ソーステーブル << 各値を設定 ( dt << 名前を取得 () ) ;
dt << 選択した列を移動 ( { 「ソーステーブル」 } 、はじめに ) ;
データテーブルをopen()からリストに格納する早々に返事をくれてありがとう。非常にエレガントなコードで、私の問題を完全に解決しました。データテーブルをopen()からリストに格納するリストを作成するには、ここでループが必要になると思います。 のディレクトリ内のファイル() 関数はファイルの数が異なり、それらがすべて同じディレクトリにある場合に便利です。
例:
// Define path and file type
mypath = "path";
ftype = ".jmp";
// Make list of files, remove all non-matching files
flist = Files In Directory(mypath);
For(i = N Items(flist), i > 0, i--,
If(!Ends With(flist[i], ftype),
Remove From(flist, i)
)
);
// Open and create list of tables
Tables = Repeat(
i = 0;
{i++ ; Open(mypath || flist[i])};,
N Items(flist)
);
//do something with the tables
For(i = 1, i <= N Items(Tables), i++,
Close(Tables[i], No Save)
);