我正试图使用products.txt文件中的数据定义一个带有分隔符*的数据集。products.txt数据:
hartie 2 birotica
creione 10 birotica
apa 6 alimente
ceai 8 alimente
tricou 100 haine
我尝试使用分隔符*:
data produse;
infile '/home/u47505185/produse.txt' dlm='*';
input Nume $ Pret Categorie $;
run;
dsd命令正在将空格更改为。我想要将空间更改为*的命令
DSD选项除了执行其他操作外,还将DEFAULT分隔符从空格更改为逗号。但是,无论是否使用DSD选项,都可以使用DLM=(也称为delimiter=(选项将默认分隔符覆盖为所需的任何字符列表。
从评论中,听起来你只是想做文本操作。只要把空格改成星星就行了。请确保删除任何尾随空格(除非您希望这些空格也成为星形(。
data _null_;
infile '/home/u47505185/produse.txt';
input;
file '/home/u47505185/produse_star.txt';
_infile_=translate(trimn(_infile_),'*',' ');
put _infile_;
run;
要在输出或数据查看器中将缺少的数值显示为星号(*
(,请使用此设置
OPTIONS MISSING='*';
INFILE
DLM=
选项用于指定数据文件中用于分隔INPUT
变量的字符。
DLM
没有为丢失的值指定替换值。
您告诉SAS使用*
作为字段分隔符。
那么发生了什么呢?日志会告诉你。从本质上讲,Nume
被读取为一个8个字符的变量(默认长度(,并且分隔符从未出现。因此,Pret
,一个数字变量,没有任何可读取的内容,并且被分配了一个缺失的值。在输出或数据查看器中查看时,该值显示为.
。
data want;
infile datalines dlm='*'; * '/home/u47505185/produse.txt' dlm='*';
input Nume $ Pret Categorie $;
datalines;
hartie 2 birotica
creione 10 birotica
apa 6 alimente
ceai 8 alimente
tricou 100 haine
;
记录
25 data want;
26 infile datalines dlm='*'; * '/home/u47505185/produse.txt' dlm='*';
27 input Nume $ Pret Categorie $;
28 datalines;
NOTE: Invalid data for Pret in line 30 1-80.
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+--
31 apa 6 alimente
NOTE: Invalid data errors for file CARDS occurred outside the printed range.
NOTE: Increase available buffer lines with the INFILE n= option.
Nume=hartie 2 Pret=. Categorie=apa 6 al _ERROR_=1 _N_=1
NOTE: Invalid data for Pret in line 33 1-80.
NOTE: LOST CARD.
34 ;
NOTE: Invalid data errors for file CARDS occurred outside the printed range.
NOTE: Increase available buffer lines with the INFILE n= option.
Nume=ceai 8 a Pret=. Categorie= _ERROR_=1 _N_=2
NOTE: SAS went to a new line when INPUT statement reached past the end of a line.
NOTE: The data set WORK.WANT has 1 observations and 3 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
默认情况下,当值丢失时,会向您显示什么?
- 数值变量,
.
或会话选项MISSING="<one-char>"
的当前设置 - 字符变量,
。字符变量缺少的值是一个空格