Input 处理输入文件中缺少的值

Input 处理输入文件中缺少的值,input,sas,file-io,Input,Sas,File Io,我需要输入一个带有分隔符dlm=“*”的数据库,如下所示: Abatucci Pierre*Derniers rayons*1200*1*55*84*5 Abatucci Pierre*L'entrée au château*1000*1*75*91 Data ProjSas.Artiste1; Infile "C:\Users\Gila\Desktop\StatOrdinL2020\artiste1.txt" dlm="*"; LENGTH Artiste $ 25 titre $

我需要输入一个带有分隔符dlm=“*”的数据库,如下所示:

Abatucci Pierre*Derniers rayons*1200*1*55*84*5
Abatucci Pierre*L'entrée au château*1000*1*75*91
Data  ProjSas.Artiste1;
Infile "C:\Users\Gila\Desktop\StatOrdinL2020\artiste1.txt" dlm="*";
    LENGTH Artiste $ 25 titre $30;                  
Input Artiste $ Titre  Prix  Deces  Hauteur   Largeur  Medium;
      Run;
它的工作原理如下:

Abatucci Pierre*Derniers rayons*1200*1*55*84*5
Abatucci Pierre*L'entrée au château*1000*1*75*91
Data  ProjSas.Artiste1;
Infile "C:\Users\Gila\Desktop\StatOrdinL2020\artiste1.txt" dlm="*";
    LENGTH Artiste $ 25 titre $30;                  
Input Artiste $ Titre  Prix  Deces  Hauteur   Largeur  Medium;
      Run;
但在一些条目中,我缺少这样的值…(7000之后)


因此,该值被跳过,82被放在错误的位置,以下值也是如此。

将DSD选项添加到infle语句中


或者,如果源文本文件中已包含列名,则可以仅使用proc import

proc import datafile="C:\Users\Gila\Desktop\StatOrdinL2020\artiste1.txt"
 out=ProjSas.Artiste1 dbms=dlm;
 delimiter='*';
 getnames=yes;
  run;