全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7414 6
2009-10-07
下面的这段程序好像不能修改全部列属性,但我也不清楚为什么。请会的人给出改正的方法,谢谢。
proc sql;
alter table table1
modify * format=char(20);
quit;


二维码

扫码加我 拉你入群

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

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

全部回复
2009-10-7 04:32:09
另外问一下,在alter table 语句里能不能用select啊?还有在proc import过程里可以在读入变量的同时定义其格式么?
二维码

扫码加我 拉你入群

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

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

2009-10-11 09:52:14
你可以用
proc datasets lib = SAS_library nolist;
          modify data_set;
          format vararible user_format.;
quit;
二维码

扫码加我 拉你入群

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

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

2009-10-11 09:55:28
proc sql;
alter table table1
modify * format=char(20);
quit;

这个修改全部列的属性是有问题的,比如你的某个列是数值型的变量,那么就会出现你想把数值型的变量改为字符新变量的提示,这个是不可以转换的,你可以在DATA步中用相应的input 和put函数来更改属性,至于格式(不如说长度等)是可以用SQL 语句更改的
二维码

扫码加我 拉你入群

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

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

2009-10-11 15:18:19
首先,要搞清楚属性和格式是不一样的,属性是指这个变量是字符型还是数值型,格式是format。还有长度是指属性对应的字节数。
修改format:

proc sql;
   alter table nkwilling
      modify
             cost     num format=dollar10.2,      
             prodlist num format=dollar10.2,
             list1989 num format=dollar10.2;

   title2 'Newprice table with new formats';
   select * from nkwilling;
quit;

修改属性:需要put或input函数。
修改长度:
proc sql;
   alter table nkwilling
   modify CMPGN_NAME char(34);
quit;

你要想修改所有变量的属性,则只能用SAS的macro实现了。
二维码

扫码加我 拉你入群

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

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

2009-10-12 09:08:58
学习了,这个很不错的,谢谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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