2017-03-08 11 views
0

SASで.txtファイルをインポートします。Sasの文字と数字を含む.txtをインポートする方法

はここで何が私のデータのようになります。ここでは

annee manufacturier modele categorie cylindree cylindres transmission ville ... 
2016 Ford   Focus 1   1.8  5  Manual  10.1 
2016 Toyota   Tercel 3   1.4  3  Auto   7.1 

がある私のコード

data car; 
infile "C:\Users\Mark\Desktop\sas\car.txt" 
LRECL=10000000 DLM=" " firstobs=2 ; 
input 
annee manufacturier modele categorie cylindree cylindres transmission type ville route combine emissiond indice 
; 
run; 

しかし、私はそれを実行したとき、私は「...に無効なデータ」がたくさんあるし、 SASのテーブルにはデータがほとんどなくなってしまい、欠けているものがたくさんあります。

一部の変数は数字であり、一部は文字です。問題があるような気がします。

どのようにファイルの種類をインポートできますか? ありがとうございます

答えて

0

テキストファイルには固有のデータ型がありません。 明示的にSASに列のデータ型を伝えるまで、すべてが文字です。また、SASにデータの入力形式や情報を伝える必要がある場合もあります。

SASは、データインフォメーションを正確に推測できるほどスマートです。たとえば、以下のコードは、informatステートメントを削除すると同じ結果を生成します。しかし、これは日付を言う場合ではないでしょう。一般的に、インフォーマットを明示的に指定するのがベストプラクティスです。

データがCSVなどで区切られている場合は、PROC IMPORTを使用してデータをインポートできます。 SASは、PROC IMPORTを使用して、列の内容に基づいてデータ型を推測します(Excelがテキストデータをインポートするときのように)。

次のコードは、指定したデータをインポートします:あなたのデータにスペースが含まれている場合

filename temp temp; 
data _null_; 
    infile datalines; 
    file temp; 
    input; 
    put _infile_; 
    datalines; 
annee manufacturier modele categorie cylindree cylindres transmission ville 
2016 Ford   Focus 1   1.8  5  Manual  10.1 
2016 Toyota   Tercel 3   1.4  3  Auto   7.1 
run; 

data want; 
    infile temp firstobs=2; 
    length 
     annee    8 
     manufacturier  $20 
     modele   $20 
     categorie   8 
     cylindree   8 
     cylindres   8 
     transmission  $20 
     ville    8 
    ; 
    informat 
     cylindree   8.1 
     ville    8.1 
    ; 
    input 
     annee    
     manufacturier  
     modele   
     categorie   
     cylindree   
     cylindres   
     transmission  
     ville    
    ; 
run; 

を、例manufacturier =メルセデスベンツのために、あなたはinformatを使用する必要があります(例えば$ char20。。)その列も同様です。

関連する問題