Import 即使在删除变量时也会出现导入错误

Import 即使在删除变量时也会出现导入错误,import,sas,proc,sas-studio,Import,Sas,Proc,Sas Studio,我正在导入以分号分隔的文件 ID Segment Number Date Payment 1 A1 103RTR 10OCT17 10 2 A1 205FCD 11OCT17 11 ... SAS不喜欢在我使用以下代码导入此txt文件时混合使用数字和字符: proc import out=want (drop=Number) datafile="have" dbms=dlm replace; delimi

我正在导入以分号分隔的文件

ID    Segment    Number    Date     Payment
1     A1         103RTR    10OCT17  10
2     A1         205FCD    11OCT17  11
...
SAS不喜欢在我使用以下代码导入此txt文件时混合使用数字和字符:

proc import
out=want (drop=Number)
datafile="have"
dbms=dlm
replace;
delimiter=';';
options validvarname=v7 missing='';
run;
尽管我没有尝试加载数字,而实际数据集中的数字要长得多,比如12个数字后跟4个字符,但它会在日志中返回此错误

NOTE: Invalid data for Number in line 22157 21-30.
 WARNING: Limit set by ERRORS= option reached.  Further errors of this type will not be printed.
 ERROR: Import unsuccessful.  See SAS Log for details.
我想做一个典型的infle和informat,但是由于有32个变量和200万行,我不能花时间来找出每个变量需要读入的范围和样式。所以我想问的是,是否有一种方法可以格式化这个特定的变量,但要坚持简化proc导入

但我也在问这是否真的影响了我的进口?因为在检查输出时数据看起来很好

我想做一个典型的填充和信息,但有32个 变量和200万行,我只是不能花时间找到 找出每个变量需要读入的范围和样式。我也是 询问是否有方法格式化特定变量,但 坚持简化过程导入

坏主意,垃圾输入=垃圾输出,你只需要处理32个变量,所以这其实没那么糟糕。花点时间清理并正确导入数据会有回报,您可以在过程中了解数据,从而加快进一步的分析。这一步不是浪费时间。 导入数据集后,最好运行PROC MEANS和PROC FREQ并检查输出以确保正确读取

proc means data=have;
run;

proc freq data=have;
run;
在PROC导入中设置
GUESSINGROWS=MAX
。这将迫使SAS在导入之前扫描整个文件,这样更可能是正确的。如果要自动化此过程并多次读取文件,则在验证数据后,从日志中获取代码并使用该代码而不是PROC IMPORT

并且option语句不应该在PROC IMPORT步骤中,它在前面

options validvarname=v7 missing='';

proc import
out=want (drop=Number)
datafile="have"
dbms=dlm
replace;
delimiter=';';
guessingrows=max;
run;

我明天早上得做,因为今晚我太累了。一天的编码很快就把我累坏了。问题是proc-means和freq,我假设它读得很好,但唯一能知道的方法是知道我直到今天才看到的以txt分隔的文件,谢谢你的建议