我有以下代码:
proc export
data=mylib.datain (
drop=
first_name mi last_name suffix
addr_1 addr_2 city
birth_dt_agg_ind
sec_birth_dt_agg_act
sec_first_name_agg_act
sec_mi_agg_act
sec_last_name_agg_act
sec_suffix_agg_act
ibx_nm_gender_1st_individual_pre
ibx_nm_gender_2nd_individual_pre
obs=2
)
outfile=stdout
dbms=csv
;
run;
工作正常。但我不希望每行多个字段。出于阅读和编辑的原因,我想要每行一个字段。但是当我这样做时,它失败了。这里的代码很好地缩进 - 相同的非空白字符,但它不起作用:
proc export
data=mylib.datain (
drop=
first_name
mi
last_name suffix
addr_1
addr_2
city
birth_dt_agg_ind
sec_birth_dt_agg_act
sec_first_name_agg_act
sec_mi_agg_act
sec_last_name_agg_act
sec_suffix_agg_act
ibx_nm_gender_1st_individual_pre
ibx_nm_gender_2nd_individual_pre
obs=2
)
outfile=stdout
dbms=csv
;
run;
我怀疑是因为" drop ="中有超过256个字符。那个时候的条款。现在,我知道我可以拿出空格,或者使用制表符而不是空格 - 在这种情况下,因为我就在边缘。
但是在一般情况下,proc中的参数中的字符数是否有限制?是256吗?有没有解决的办法?我尝试使用两种不同的" drop ="参数,但是没有用。
答案 0 :(得分:0)
DROP=
等数据集选项的长度没有限制。但PROC EXPORT
基本上是SAS编写的SCL程序。也许与此相关的界面就是造成这个问题的原因。
创建一个视图并告诉PROC EXPORT使用它。
data myview / view=myview ;
set mylib.datain
(
drop=
first_name
mi
last_name suffix
addr_1
addr_2
city
birth_dt_agg_ind
sec_birth_dt_agg_act
sec_first_name_agg_act
sec_mi_agg_act
sec_last_name_agg_act
sec_suffix_agg_act
ibx_nm_gender_1st_individual_pre
ibx_nm_gender_2nd_individual_pre
obs=2
)
;
run;
proc export
data=myview
outfile=stdout
dbms=csv
;
run;