sas infile 数据行截断为 8 个字符
sas infile dataline trunctuates at 8 characters
我已经有几年没有使用 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,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
或 [=13 显式定义变量,您和 SAS 编译器可能会更清楚=] 使用它们之前声明。否则 SAS 必须根据它们的首次使用方式来猜测您希望它们如何定义。
data h0;
length kst 8 kst_bez hx hx_bez hxx hxx_bez
hxxx hxxx_bez
;
infile datalines dsd truncover ;
input kst -- hxxx_bez ;
datalines;
...
您可以在第一次使用变量时向 INPUT 语句添加内联信息格式规范,SAS 将默认使用所用信息格式的宽度,但请确保添加冒号前缀以防止 SAS 读取过去分隔符。
data h0;
infile datalines dsd truncover ;
input kst kst_bez :. hx :. hx_bez :. hxx :. hxx_bez :.
hxxx :. hxxx_bez :.
;
datalines;
...
我已经有几年没有使用 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,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
或 [=13 显式定义变量,您和 SAS 编译器可能会更清楚=] 使用它们之前声明。否则 SAS 必须根据它们的首次使用方式来猜测您希望它们如何定义。
data h0;
length kst 8 kst_bez hx hx_bez hxx hxx_bez
hxxx hxxx_bez
;
infile datalines dsd truncover ;
input kst -- hxxx_bez ;
datalines;
...
您可以在第一次使用变量时向 INPUT 语句添加内联信息格式规范,SAS 将默认使用所用信息格式的宽度,但请确保添加冒号前缀以防止 SAS 读取过去分隔符。
data h0;
infile datalines dsd truncover ;
input kst kst_bez :. hx :. hx_bez :. hxx :. hxx_bez :.
hxxx :. hxxx_bez :.
;
datalines;
...