全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4974 12
2012-12-31
悬赏 20 个论坛币 已解决
SAS 中使用append 或update 数据集时
出现WARNING: 输入数据集为变量“ege13”指定了多个长度。这可能会造成数据截断。
如何数据集中最长的长度为准,不出现数据截断。

最佳答案

webgu 查看完整内容

/* demo data set*/ data a; length a $ 9; length b $ 10; a="a9" ; b="b10"; run; data b; length a $ 10; length b $ 11; a="a10"; b="b11"; run; /*get the tmp data set*/ proc sql; create table _tmp as select name ,max(length) as length from sashelp.vcolumn where libname=upcase("WORK") and memtype="DATA" and type='char' group by name; quit; /* get the ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-12-31 14:27:05
/* demo data set*/
data a;
length a $ 9;
length b $ 10;
a="a9"  ;
b="b10";
run;

data b;
  length a $ 10;
  length b $ 11;
a="a10";
b="b11";
run;

/*get the tmp data set*/
proc sql;
   create table _tmp  as
   select  name ,max(length) as length
   from sashelp.vcolumn
   where libname=upcase("WORK")  and memtype="DATA" and type='char'
   group by name;
quit;

/* get the macro var of max lenth of every variable*/
proc sql;
   select   catx(' ' ,  name,'$ ', length) into :lenlist separated  by ' '
   from _tmp;
quit;

/ *check it*/
%put &lenlist;

/* append the data*/
data  c;
   length &lenlist;
  set a b;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-31 14:41:06
使用APPEND时,各个数据集中字符变量内容长度不一样,会造成数据截断。使用APPEND的时候最好先做一张空表,这张表中包含各个数据集的所有变量,并且字符变量的长度为各个数据集中最大的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-31 15:25:51
冰雨狼 发表于 2012-12-31 14:41
使用APPEND时,各个数据集中字符变量内容长度不一样,会造成数据截断。使用APPEND的时候最好先做一张空表, ...
还是挺麻烦的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-31 15:33:14
dxystata 发表于 2012-12-31 15:25
还是挺麻烦的
你可以把变量长度最长的那个表作为BASE表,但是会遇到每张表都有几个变量长度最长,所以还是先做一张基础表比较好。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-31 17:26:23
冰雨狼 发表于 2012-12-31 15:33
你可以把变量长度最长的那个表作为BASE表,但是会遇到每张表都有几个变量长度最长,所以还是先做一张基础 ...
可以举个实例吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群