sas内嵌数据线trunctuates为8个字符
我已经有几年没有在SAS工作了,我正在努力重新开始工作 我正在尝试使用逗号分隔的数据行读取数据。虽然有很多示例,但我无法正确导入以下数据:sas内嵌数据线trunctuates为8个字符,sas,truncate,Sas,Truncate,我已经有几年没有在SAS工作了,我正在努力重新开始工作 我正在尝试使用逗号分隔的数据行读取数据。虽然有很多示例,但我无法正确导入以下数据: data h0; infile datalines delimiter=','; input kst kst_bez $ hx $ hx_bez $ hxx $ hxx_bez $ hxxx $ hxxx_bez $ ; datalines; 10000,Team 1 South,H0,Gr
data h0;
infile datalines delimiter=',';
input
kst
kst_bez $
hx $
hx_bez $
hxx $
hxx_bez $
hxxx $
hxxx_bez $
;
datalines;
10000,Team 1 South,H0,Group,H10,Retail,H112,Retail Germany
10001,Team 2 North & West,H0,H10,Retail Division 2,H112,Retail Germany
10003,Human Res,H0,Group,H20,HR,H112,HR Germany
;
我本以为,delimiter=',
告诉SAS只需将我的,
-字符之间的数据读入类似于VARCHAR
-变量的内容中。。。但是,任何字母数字数据都会被截断为8个字符
我模模糊糊地记得我必须使用类似$varying40.
,这与我找到的示例一致-但是,如果我将其添加到变量中,变量不会停止在,
,而是读取整个,比如说,40个字符
有什么提示吗
非常感谢 如果您不定义它们,否则SAS将默认所有字符变量的长度为8。如果在使用变量之前使用
LENGTH
或ATTRIB
语句显式定义变量,对您和SAS编译器来说可能更清楚。否则,SAS必须根据它们最初的使用方式猜测您希望如何定义它们
data h0;
length kst 8 kst_bez $20 hx $20 hx_bez $20 hxx $20 hxx_bez $20
hxxx $20 hxxx_bez $20
;
infile datalines dsd truncover ;
input kst -- hxxx_bez ;
datalines;
...
您可以在第一次使用变量时向输入语句中添加行内信息规范,SAS将默认为所用信息的宽度,但请确保添加冒号前缀,以防止SAS读取超过分隔符
data h0;
infile datalines dsd truncover ;
input kst kst_bez :$20. hx :$20. hx_bez :$20. hxx :$20. hxx_bez :$20.
hxxx :$20. hxxx_bez :$20.
;
datalines;
...
谢谢!这两种选择都很有魅力。什么时候使用这是一个谜在这一点上,但我想我知道它一旦我回到SAS
truncover
是我明显错过的部分。