2

カスタム コードを使用して csv ファイルを sas にインポートしようとしています。以下は、生データのサンプル行です。

Item,date,WKLY_QTY,WKLY_SALES
10001,01Apr12,3313,67536.16
10001,15Apr12,889,26577.66
10001,22Apr12,4543,65001.8
10001,29Apr12,2822,74522.02

私のSASコードは次のとおりです。

data LOtpt.Dummy2; 
infile "&InptPath.\Dummy2_CSV.csv" dsd dlm=','  FIRSTOBS=2; 
input Item date DATE7. WKLY_QTY WKLY_SALES; 
run;

私が得ている結果は次のとおりです。

Item    date  WKLY_QTY WKLY_SALES
10001   19084   .   3313
10001   19098   .   889
10001   19105   .   4543
10001   19112   .   2822

誰でも間違いを手伝ってくれませんか。この入力形式を文字として使用すると、すべてがうまくいくため、日付入力形式には問題があります。

4

2 に答える 2

3

ここでは、2 種類の入力を混合しています。唯一の違いは、単一のコロンです。

data work.Dummy2; 
infile datalines dsd dlm=','; 
input Item date :DATE7. WKLY_QTY WKLY_SALES; 
datalines;
10001,01Apr12,3313,67536.16
10001,15Apr12,889,26577.66
10001,22Apr12,4543,65001.8
10001,29Apr12,2822,74522.02
;;;;
run;

リスト入力では、通常、リストに入力形式を使用できません (入力形式は入力形式ステートメントに入れることができます)。ただし、変更されたリスト入力 (上記のように) は許可されます。

于 2013-08-11T11:01:33.117 に答える
1

ステートメントを使用して、データ セットで使用されるすべての変数を明示的に定義する習慣を身に付けることをお勧めします。ATTRIBもう少し入力が必要ですが、特に他の人の助けが必要な場合は、はるかに使いやすいコードになります。さらに良いのは、KEEP必要な変数のみを制御するステートメントを含めることです。これにより、不要な変数が表示されるのを防ぐことができます。

LISTこれには、必要に応じて入力を使用できるという追加の利点があります。

つまり、これを試してください:

data LOtpt.Dummy2; 

  /* Define all variables and attributes here */
  attrib Item       informat=5.      format=5.;
  attrib Date       informat=date7.  format=yymmdd10.;
  attrib Wkly_Qty   informat=best10. format=comma9.;
  attrib Wkly_Sales informat=best10. format=dollar11.2;
  keep Item Date Wkly_Qty Wkly_Sales; 

  infile "&InptPath.\Dummy2_CSV.csv" dsd dlm=',' firstobs=2; 

  input Item Date Wkly_Qty Wkly_Sales; 
run;

このようなことを常に行う習慣があれば、時間の経過とともにはるかに簡単になります。データがどのように見えるかに基づいて、フォーマットと情報を選択したことに注意してください。ニーズに最も適したものを選択する必要があります。

于 2013-08-11T21:43:37.490 に答える