複数のCSVファイルをフォルダにインポートして積み重ねるこんにちは、みんな、
CSV ファイルに奇妙な区切り文字 ( 「,」 ) が含まれているため、JMP で自動的にインポートする方法がわかりません。
同じ構造と列名を持つ複数の CSV ファイルを含むフォルダーを選択し、すべてのデータをインポートしてスタックできるようにすることを目指しています。
私のファイルと似た CSV ファイルを添付しました。
助けていただければ幸いです:)
乾杯、クリスチャン
自動化とスクリプトデータアクセスマスカスタマイゼーションRe: 複数のCSVファイルをフォルダにインポートして積み重ねるさらに、引用符は 1、2、3 のようになります。

おそらく最善の解決策は、ファイルのエクスポートを修正することです:)
別の解決策:「Notepad ++」/ファイル内の置換を使用する:

引用符を削除します。
Re: 複数のCSVファイルをフォルダにインポートして積み重ねるJMPでは、
Text to Columns は、このような大量の区切り文字を処理するためのツールです。
「 」でも「」、「」でも「」でも構いません
複数の区切り文字を 1 つの区切り文字として扱います (!)
これは非常に有害である可能性があります: テキストを列に分割: 欠落データを正しく処理する
...しかし、多くの場合、ここでのように、まさにそれが私たちが必要としているものです。
それで、
a) 「行単位」オプションを使用してMFI経由でファイルをロードします。
b) and use テキストを列に分割 with Delimiters = ,"

dts = Multiple File Import(
<
<SET folder="">
</SET>
<BR />
Re: 複数のCSVファイルをフォルダにインポートして積み重ねるまた、各行の末尾に「」があり、最初の列には「、」形式ではなく「、」形式があるようです。

これがすべてのファイルに機能するかどうかはわかりませんが、テキストとして処理し、「適切な」csvにクリーンアップしてから、メモリからJMPテーブルに開きます。
Names Default To Here(1);
filedir = "$DOWNLOADS\New folder (2)\";
csvfiles = {};
For Each({filename}, Files In Directory(filedir),
If(Ends With(filename, ".csv"),
Insert Into(csvfiles, filedir || filename);
);
);
dt_res = Empty();
For Each({csvfile}, csvfiles,
txt = Load Text File(csvfile);
lines = Words(txt, "\!N");
lines_fixed = Transform Each({line}, lines,
items = Concat items(Words(line, "\!","), ",");
);
csv_txt = Concat Items(lines_fixed, "\!N");
dt = Open(Char to Blob(csv_txt), "text", Invisible);
dt << Set Name(Word(-1, csvfile, "\/"));
If(Is Empty(dt_res),
dt_res = dt;
,
dt_res << Concatenate(
dt,
"Append to first table";
);
Close(dt, no save);
);
);
dt_res << Bring Window To Front;
Re: 複数のCSVファイルをフォルダにインポートして積み重ねるああ、そうですね、 words() はテキストを列に分割()と同じトリックを使用します。
Re: 複数のCSVファイルをフォルダにインポートして積み重ねるさらに深く掘り下げる:
主な問題は

MFI設定で。
JMP は最初と最後の引用符を認識し、テキスト行全体を 1 つの列として読み取ります (2 つおきの引用符を保持?!?)。

編集: 最初と最後の引用符? いいえ、それはもっと複雑です - 以下を参照してください!
簡単な解決策として、CSV 引用符の設定を別の文字に変更できます。

<
<SET csv="" quote=""></SET>
<P>引用符自体を区切り文字として使用します。</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_2-1756463581618.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81530i4BF1266286F27E58/hogi_2-1756463581618.png" role="button" title="hogi_2-1756463581618.png" alt="hogi_2-1756463581618.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P><BR />これにより、JMP はファイルを読み取ることができますが、次のようになります。</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81531iE7879526B8F81200/hogi_3-1756463633644.png" width="773" height="87" role="button" title="hogi_3-1756463633644.png" alt="hogi_3-1756463633644.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P><FONT face="courier new,courier">単語()</FONT>や<FONT face="courier new,courier">テキストを列に分割()</FONT>とは異なり、 <FONT face="courier new,courier">MFIは</FONT>すべての(単一の)区切り文字を区切り文字として扱います。<BR />アイデア: 欠損データ = 欠損データ、スキップされた列はありません!</P> <P>MFI に感謝します。ほとんどのファイルについては、これで意味が通ります :-)</P> <BR /> <P>ここではそうではありません。したがって、インポート後にユーザーは空の列を削除する必要があります。<BR /><BR />注意: 空の CSV 引用設定を含むファイルをインポートしても機能しません。</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_4-1756463762291.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81533iF2FFDC8A29503E1D/hogi_4-1756463762291.png" role="button" title="hogi_4-1756463762291.png" alt="hogi_4-1756463762291.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <CODE class=" language-jsl"><
<SET csv="" quote=""></SET> <P>JMP は引用符を CSV 引用符として自動的に使用し、ファイル全体を 1 つの列として読み込みます。</P>
Re: 複数のCSVファイルをフォルダにインポートして積み重ねるMFIとCSVの見積もりをもっと楽しく
添付ファイルを使用する
入力: JMP:

行 1 ~ N に適合する仮説が設定されると、行 N+1 のブラック スワンを見つけるのは簡単です...
Re: 複数のCSVファイルをフォルダにインポートして積み重ねる0. 引用符の前に文字がある場合、それは CSV 引用符ではありません。
- セルの最初の文字が引用符の場合、それはCSV引用符です -> 閉じ引用符を見つけるためにスキャンします
- 引用符が2つ連続している場合は、1つの引用符として扱います。

- 途中でカンマを見つけたら、それはカンマです
- 途中で改行を見つけたら、それは改行です(!!)
実際のセルの内容は次のとおりです。

- 他に興味深いキャラクターはいますか? ...
- 引用符を閉じると引用は完了します
- 区切り文字または改行を検索します。
見つかった文字を引用に追加するだけです。
- ここで: 一重引用符は一重引用符です
- 2つの引用符は2つの引用符です(#2と比較してください)
- 区切り文字または改行が見つかった場合、それがセルの終わりです(#4と比較)
- 引用符の前にスペースがあると、その引用符は CSV 引用符ではなくなります。
(#0 のサブセット)
理解するのに少し時間がかかりました
前回の投稿から、これを別のケースとして追加したのはこのためです。
csvファイル: JMP:

Re: 複数のCSVファイルをフォルダにインポートして積み重ねる新たな調査結果を踏まえると、元の投稿のデータ表はより馴染みのあるものになりました。
これは、最初のステップ (「V1」) で数値列と文字列に引用符が追加された状態でエクスポートされたデータ テーブルに似ています (最初の列のみ引用符が追加されませんでした)。

驚いたことに:
V1はJMPとExcelでドラッグ&ドロップで開くことができます。どちらのプログラムもCSV引用符を自動的に展開し、正しい形式で表を読み込みます。では、V1からV2へどのようにアクセスするのでしょうか?奇妙な sep.csv を含む CSV ?
効果的なもの:
ステップ2: V1をタブ区切りのテーブルとして開く(CSV引用符付きのCSVファイルではなく)
ステップ3: テーブルをCSVとして保存します(このステップ(JMPおよびExcel)では、各行の先頭と末尾の引用符が自動的に追加され、一重引用符は二重引用符に置き換えられます)
逆のプロセスは簡単です:
- JMPまたはExcelで「sep.csvを含む」というCSVファイルを開くだけです。どちらのプログラムも、囲んでいる引用符を自動的に削除し、二重引用符は一重引用符に戻します。Excelでは次のように表示されます。

まさに私たちが望んでいたもの:

それでは、データ テーブルを csv として保存し、再度ロードしてみましょう 
JMPでは、オプションを無効にすることができます。
]
残念ながら、CSVエンコードはデフォルトで有効になっています。一方で、これは妥当な選択と言えるかもしれません。CSV引用符なしでファイルを保存すると、データ構造が大きく変わってしまうからです。
しかし実際、それが私たちが望んでいたことなのです。
したがって、唯一の方法 (?) は、JMP または Excel からテキスト エディターにエントリをコピーし、そこから v1.txt を保存することです。
テキスト エディターは csv 引用符を認識しないため、テキストをそのまま保存します。
Re: 複数のCSVファイルをフォルダにインポートして積み重ねる@hogi @jthiご回答とご尽力、本当にありがとうございます!想像以上にひどい状況でした!
あなたの回答をじっくり読むのに少し時間がかかりますが、すぐにお礼を言いたかったのです:)
乾杯、クリスチャン