2017-03-08 31 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导入您的数据。使用PROC IMPORT,SAS将根据列的内容对数据类型进行最佳猜测(如Excel在导入文本数据时所做的那样)。

下面的代码将导入您指定的数据:(。。例如:$ char20)

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 =奔驰,那么你就需要使用了信息的该列也是如此。