2

csv ファイルを SAS に読み込みたいのですが、ファイルの一部だけを読み込みたいです。たとえば、データの最初の行を行 18 から開始し、列 9、11、12、13、19、20、36 を読み取りたいとします。これをデータ ステップで手動で行う効率的な方法はありますか必要なファイル部分を読み込むか、インポート ウィザードを使用してファイル全体を読み込み、必要な列だけを保持するのが最善の策ですか?

4

2 に答える 2

5

DATAROWPROC IMPORT のオプション、またはFIRSTOBSデータ ステップ入力のオプションを使用して、開始する行を変更できます。

ただし、選択した列だけを簡単に読み取ることはできません。興味のある最後の列まですべての列を読み込んでから、興味のない列を削除する必要があります。「空白」などと呼ばれる $1 文字 (毎回同じ名前でも) を使用してそれらをすべて読み取ることができますが、それらを要求する必要があります。

,.*?,.*?,唯一の回避策は、データを読み取る正規表現を記述することです。この場合、スキップされた各列について etc. を探すように指示できます。

于 2013-08-27T15:14:50.497 に答える
1

列番号の代わりに変数名を使用できる場合、これは機能します。とにかく、数値の代わりに変数名を使用することをお勧めします。これは、コードに実質的な意味を追加し、入力ファイルの列が変更された場合に問題を検出するのに役立つ可能性があるためです。

PROC IMPORT datafile = "filename.csv"
    out = data_read (keep = var1 var2 var3)
    dbms = csv
    replace;
    datarow = 18;
RUN;
于 2013-08-27T18:52:04.827 に答える