全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1194 4
2013-03-17
我要合并两个数据集,但同一个变量在两个数据集里分别是字符型和数值型(一个是$1,一个是best12 ),所以就导致没办法合并.另:这种变量还很多,我数了下有大概30多个。


小弟菜鸟,刚刚接触SAS,老师布置了比较重的任务,求大神指点,不胜感激~~~~


另外附上错误语句,存在问题的两个数据集是fs.all01和fs.all02
未命名.jpg
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-17 14:17:11
出来抛块砖吧,希望对lz有所帮助
data ads;
input a $1 b;
cards;
1 10
2 20
3 30
;
run;

data  bds;
input a :best12. c;
cards;
1 100
2 200
3 300
;
run;

data bds(drop=a rename=(_a=a));
set bds;
_a=put(a,1.);
run;

data combine;
merge ads bds;
by a;
run;
二维码

扫码加我 拉你入群

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

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

2013-3-17 15:23:43
Eternal0601 发表于 2013-3-17 14:17
出来抛块砖吧,希望对lz有所帮助
data ads;
input a $1 b;
谢谢您的回复~
您的语句是将数值型改为字符型是吗?可不可以把字符型改为数值型呢?我按以下语句试了下,还是有错误呢。

data ads;                                                                                                                              
input a $1 b;                                                                                                                           
cards;                                                                                                                                 
1 10                                                                                                                                    
2 20                                                                                                                                    
3 30                                                                                                                                    
;                                                                                                                                       
run;                                                                                                                                    
                                                                                                                                       
data  bds;                                                                                                                              
input a :best12. c;                                                                                                                     
cards;                                                                                                                                 
1 100                                                                                                                                   
2 200                                                                                                                                   
3 300                                                                                                                                   
;                                                                                                                                       
run;                                                                                                                                    
                                                                                                                                       
data ads(drop=a rename=(_a=a));                                                                                                         
set ads;                                                                                                                                
_a=put(a,6.);                                                                                                                           
run;                                                                                                                                    
                                                                                                                                       
data combine;                                                                                                                           
merge ads bds;                                                                                                                          
by a;                                                                                                                                   
run;
二维码

扫码加我 拉你入群

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

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

2013-3-17 15:41:38
hellofuture 发表于 2013-3-17 15:23
谢谢您的回复~
您的语句是将数值型改为字符型是吗?可不可以把字符型改为数值型呢?我按以下语句试了下, ...
对的,数值型变为字符型用put function,字符型变为数值型的用input function;
将你程序中的_a=put(a,6.);  改为_a=input(a,best12.);就为问题了         
  
二维码

扫码加我 拉你入群

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

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

2013-3-17 17:38:04
Eternal0601 发表于 2013-3-17 14:17
出来抛块砖吧,希望对lz有所帮助
data ads;
input a $1 b;
非常感谢您~
我从您给的语句中找到了突破点,问题已经解决了,谢谢啦!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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