ヘッダーとして2行のcsvをインポートしますこんにちは、
比較的大きなcsvファイル(±150MB)を使用しています。ファイルは、列ヘッダーとして組み合わせる必要がある2つの行で始まります。
各列をループし、列名を現在の名前+最初の行の値に設定するスクリプトを作成しました。
実行速度が非常に遅いという問題があります。4000列の名前を変更するまで±10分待つ必要がある場合があります。
どういうわけかファイルサイズに依存し、小さなファイルで同じ量の列を変更するには数秒かかります。
私はいくつかの回避策を試しました-
1.最初の行のみをサブセット化し、すべての列名を変更します(非常に高速)。 次に、元のテーブルを連結することを考えましたが、列名が同じではなくなったため、連結できません。
2.提案されたCSVインポート設定の更新ここに。しかし、ヘッダーとして2行を含めるオプションがまだ表示されません。
3.ファイルをxlsとしてエクスポートしてから、2行をヘッダーとしてインポートします。エクスポート時間は、元の列名の変更よりも長くなります。
私が見逃している別の回避策はありますか?リストに基づいてすべての列名を変更するオプションがあるかもしれませんか?
ヘルパーに感謝します。
データ表スクリプティング再:ヘッダーとして2行のcsvをインポートしますこんにちは@Rans 、
JMPでファイルを開き、[デフォルトのプログラムを使用して開く]ボックスを選択解除した場合。 チェックを外してテキストとして開く。」をクリックし、ラジオボタン「データ(プレビューを使用)」を選択します。JMPの開いているウィンドウですべてのファイル(*。*)を選択してください。

次に、データが開始する行など、いくつかの重要な区切り文字やその他のものを選択できます。したがって、ヘッダーとして2つの行がある場合は、1つをスキップして、データの開始を3行目などに設定します。

次に、データテーブルで「ソース」スクリプトを開き、必要に応じてインポート設定を編集して、このスクリプトをJSLプログラムで使用できます。

または、XLSXファイルとして再保存できる場合は、Open()コマンドを使用して、開くタブ、開始/停止する列、開始/停止する行を定義できます。ヘッダーとして複数の行。 これで、列の名前を変更する必要があるという問題が解決するはずです。

私が言及する最後のオプションは、列名が何であるかを知っていて、それらが変更されない場合、スクリプトで、リストColNames = {"..."、 "..."、..を持つことができるということです。 。}リスト内のすべての正しい名前をコンマで区切って引用符で囲みます。 次に、CSVファイルを読み込んだ後、Forループを実行して、ColNamesのエントリに従って各列の名前を変更できます。 例えば:
dt=Current data table();//or whatever your data table name is.
icols=.;//variable to count through the columns
For(icols=1, icols<=N Columns(dt), icols++,
Column(dt, icols) <<SET name=""></SET>
これらのいずれかが役立つことを願っています!
がんばろう、
DS
再:ヘッダーとして2行のcsvをインポートします1つのファイルであっても、複数のファイルのインポートを試みる場合があります。 より高速になる可能性があり、複数の行ヘッダーをサポートします。
ファイル->複数のファイルをインポート