2017-07-09 3 views
0

私のcsvファイルのsales.csvは8つの変数SASはcsvからデータを読み取っているときに観測終了をどのように識別しますか?

EMPLOYEE_ID、FIRST_NAME、LAST_NAME、性別、給与、JOB_TITLE、国とEmp_Hire_Date

私のコードを持っている。このようなものです:

%let path = /folders/myfolders/ecprg193; 
data work.sales1; 
    infile "&path/sales.csv" dlm=','; 
    input Employee_ID First_Name $ 
     Last_Name $ Gender $ Salary 
     Job_Title $ Country $; 
run; 

それは基本的にありcsvファイルからデータセットsales1を作成します。

コードでは、私は国の変数まで指定されたhavvを見ることができます。 私の質問は、データセットwork.sales1 how sasを作成するときです。CSVのhiredateデータをスキップしますか?

この質問に回答するためにさらに情報が必要かどうかお知らせください。

+0

データファイルのいくつかの例を表示できますか?あなたのプログラムを実行したときにも、SASはエラーメッセージを生成しましたか? – Tom

+0

SASはログをチェックしたときにエラーメッセージを表示しませんでした。入力ファイルsales.csv からコピーされた第1の2行のテキスト ..... 120102、トム、周、M、108255、セールスマネージャー、AU、11AUG1973 120103、ウィルソン、ドーズ、M、87975、販売マネージャ、AU、22JAN1953 ..... –

答えて

0

あなたの説明によれば、ファイルは1行に8つのフィールドを持ち、プログラムは1行に7つの変数しか読み込みません。最後のフィールドを読んでいないのでスキップします。

デフォルトでは、オペレーティングシステムの通常の行末文字で区切られた可変長レコードが必要です。あなたのパスからUnix上でSASを実行しているように見えるので、デフォルトの行末は改行文字( '0A'x)だけになります。このファイルをPC上に作成した場合、実際にはキャリッジリターンとラインフィードの2バイトシーケンス( '0D0A'x)を行末として使用して実際に作成された可能性があります。 SASに使用する場合は、TERMSTR=オプションをINFILEステートメントに追加することで指定できます。 Unix上でPC/Windowsファイルを読んでいる場合は、termstr=CRLFを追加してください。

+0

はい改行charは、各行の区切り文字です。 Infact、あなたの答えは正確で正確です:) –

+0

もう1つのことは、infileステートメントを見ることができます、私は区切り記号(、)行/観測の終わりではない各変数の値を指定しました。したがって、デフォルトでは( '0A'x)は観測デリミタです。私が明示的に観測区切りを指定したいのであれば、これについてもっと教えてください。どのように追加するのですか? –

関連する問題