楼主: lnlhckao123
5742 8

[原创博文] 请求数据后加编号的SAS程序 [推广有奖]

  • 0关注
  • 3粉丝

副教授

62%

还不是VIP/贵宾

-

威望
0
论坛币
14810 个
通用积分
10.6125
学术水平
7 点
热心指数
4 点
信用等级
4 点
经验
12566 点
帖子
754
精华
0
在线时间
405 小时
注册时间
2010-8-21
最后登录
2025-6-7

楼主
lnlhckao123 发表于 2011-5-25 03:31:01 |AI写论文
100论坛币
请求用一个SAS程序,将如下数据转换,请将
0.114398422      0.061442565          0.136684303       0.070736434         0.5371      
0.134312697      0.061240935         0.145991561       0.084145261       0.4560         
0.111208406      0.069513406        0.152528548       0.06557377        0.6251              
0.108678021      0.072131148         0.168124393       0.081447964      0.6637            
0.12250996      0.079646018         0.135319149       0.078598485            0.6501      
0.109475621      0.066439523        0.130081301       0.064784053      0.6069           
0.112173913      0.061032864         0.105472637       0.063                    0.5441        
0.114604462      0.061707523          0.130581297       0.061120543      0.5384         
0.097050428      0.07748184           0.140449438       0.080779944      0.7984        
0.110833333      0.076923077       0.14159292          0.068124474       0.6940        
  0.121513944      0.081578947        0.16080402         0.081781377        0.6714         
0.117132867      0.079510703        0.130708661         0.069291339        0.6788        
0.097418818      0.071884984       0.141322314           0.084577114      0.7379            
0.112688554      0.079207921         0.133709981       0.08805668         0.7029         
0.090756303      0.084139265          0.11847233         0.0795053           0.9271         
0.122857143      0.076721883        0.137288136       0.084830339       0.6245           
0.113777778      0.074111675       0.1621881            0.06899811          0.6514     
0.110769231      0.078753076         0.132075472         0.078465562       0.7110   
0.079526227      0.084409136          0.141969831         0.068391867       1.0614      
0.104807692      0.071246819         0.140062598        0.076858108       0.6798      
转换为


0.114398422        1        0.061442565            2           0.136684303              3            0.070736434           4             0.5371             5              
0.134312697      1       0.061240935             2            0.145991561            3                0.084145261             4        0.4560                  5           
0.111208406      1          0.069513406           2           0.152528548             3              0.0655737                4            0.6251              5           
0.108678021      1       0.072131148             2            0.168124393              3            0.081447964            4            0.6637              5           
   0.12250996        1         0.079646018              2           0.135319149           3             0.078598485            4             0.6501               5            
0.109475621       1      0.066439523              2            0.130081301             3                0.064784053         4             0.6069              5              
0.112173913      1        0.061032864             2            0.105472637              3               0.063                        4        0.5441                5            
0.097050428      1         0.07748184             2            0.140449438              3             0.080779944             4             0.7984              5            
0.110833333       1        0.076923077           2            0.14159292              3              0.081781377             4             0.6714              5        
0.117132867      1         0.079510703           2            0.130708661             3            0.069291339             4              0.6788                5            
0.097418818      1       0.071884984              2           0.141322314             3           0.084577114            4              0.7029                5                 
0.090756303      1      0.084139265            2            0.11847233                 3             0.0795053                4             0.9271                5         
0.122857143       1     0.076721883            2           0.137288136              3                  0.084830339           4          0.6514                5            
0.110769231     1        0.078753076          2           0.132075472             3               0.078465562              4           0.7110                5            
0.079526227      1         0.084409136        2          0.141969831               3                 0.068391867            4               1.0614             5            
0.104807692      1        0.071246819           2         0.140062598              3              0.076858108            4               0.6798              5            

即在每个数据后加一个序列号,相同列的序列号相同,当然数列要摆整齐,因为太多了,所以我没摆整齐!谢谢高手指点!

最佳答案

456852 查看完整内容

data a; input a b c d e; cards; 0.114398422 0.061442565 0.136684303 0.070736434 0.5371 0.134312697 0.061240935 0.145991561 0.084145261 0.4560 0.111208406 0.069513406 0.152528548 0.06557377 0.6251 0.108678021 0.072131148 0.168124393 0.081447964 0.6637 ...
关键词:sas程序 求数据 高手指点 数据转换 序列号 程序

沙发
456852 发表于 2011-5-25 03:31:02
data a;
input a b c d e;
cards;
0.114398422      0.061442565          0.136684303       0.070736434       0.5371      
0.134312697      0.061240935         0.145991561       0.084145261       0.4560         
0.111208406      0.069513406        0.152528548       0.06557377        0.6251              
0.108678021      0.072131148         0.168124393       0.081447964      0.6637            
0.12250996       0.079646018         0.135319149       0.078598485       0.6501      
0.109475621      0.066439523        0.130081301       0.064784053      0.6069           
0.112173913      0.061032864         0.105472637       0.063            0.5441        
0.114604462      0.061707523          0.130581297       0.061120543      0.5384         
0.097050428      0.07748184           0.140449438       0.080779944      0.7984        
0.110833333      0.076923077       0.14159292          0.068124474       0.6940        
0.121513944      0.081578947        0.16080402         0.081781377        0.6714         
0.117132867      0.079510703        0.130708661         0.069291339        0.6788        
0.097418818      0.071884984       0.141322314           0.084577114      0.7379            
0.112688554      0.079207921         0.133709981       0.08805668         0.7029         
0.090756303      0.084139265          0.11847233         0.0795053        0.9271         
0.122857143      0.076721883        0.137288136       0.084830339       0.6245           
0.113777778      0.074111675       0.1621881            0.06899811       0.6514     
0.110769231      0.078753076         0.132075472         0.078465562      0.7110   
0.079526227      0.084409136          0.141969831         0.068391867     1.0614      
0.104807692      0.071246819         0.140062598        0.076858108       0.6798      
;
proc sql noprint;
select name into:n1-:n5 from sashelp.vcolumn where libname="WORK" and memname="A";
quit;
proc sql noprint;
select varnum into:o1-:o5 from sashelp.vcolumn where libname="WORK" and memname="A";
quit;
%macro t();
data b;
set a;
%do i=1 %to 5;
n&&n&i=left(trim(cat(trim(&&n&i)," &&o&i")));
drop &&n&i;
rename n&&n&i=&&n&i;
%end;
run;
%mend;
%t();
已有 1 人评分学术水平 热心指数 收起 理由
lnlhckao123 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

藤椅
ntsean 发表于 2011-5-25 11:16:21
用前面那个兄弟的数据, 如果你是想新建5个序列的变量的话, 那么很简单

proc sql;
create table new as
select a, 1 as id_1,b,2 as id_2,c,3 as id_3,d,4 as id_4,e,5 as id_5
from a;
quit;
已有 1 人评分学术水平 热心指数 收起 理由
lnlhckao123 + 1 + 1 好的意见建议

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

板凳
soporaeternus 发表于 2011-5-25 12:01:19
  1. data _null_;
  2.         set _1;
  3. /*        file "e:\1.txt";*/
  4.         array xx _all_;
  5.         do i=1 to dim(xx)-1;
  6.                 put xx[i] best12. +1 i @@;
  7.         end;
  8.         d=dim(xx);
  9.         put xx[dim(xx)] best12. +1 d;
  10. run;
复制代码
需要输出,把注释去掉
偷工减料版,希望对楼主有帮助
已有 1 人评分热心指数 收起 理由
lnlhckao123 + 1 好的意见建议

总评分: 热心指数 + 1   查看全部评分

Let them be hard, but never unjust

报纸
lnlhckao123 发表于 2011-5-25 18:18:16
请问456852,你的程序可满足我的要求,我把你的程序设为最佳答案!我有一个问题请教你:可否把你编写的程序结果输出到指定的程序,做为数据用,当然,要把最前面的序列号删除掉!如把结果输到如下程序中做为数据;
data aa;
input  x   c@@;
cards;

;
run;
谢谢指点!!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

地板
lnlhckao123 发表于 2011-5-25 18:22:38
请问四楼为什么你的程序运行后出现如下错误提醒:谢谢指点!
609  data a;
610  input a b c d e;
611  cards;

NOTE: The data set WORK.A has 20 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds


632  ;
633  run;
634
635  data _null_;
636
637          set _1;
ERROR: File WORK._1.DATA does not exist.
638
639  /*        file "e:\1.txt";*/
640
641          array xx _all_;
WARNING: Defining an array with zero elements.
642
643          do i=1 to dim(xx)-1;
644
645                  put xx best12. +1 i @@;
646
647          end;
648
649          d=dim(xx);
650
651          put xx[dim(xx)] best12. +1 d;
652
653  run;

NOTE: The SAS System stopped processing this step because of errors.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

7
soporaeternus 发表于 2011-5-25 21:10:47
把我的程序按你的导入原数据后的数据集修改表名和变量名......
Let them be hard, but never unjust

8
456852 发表于 2011-5-25 22:22:38
lnlhckao123 发表于 2011-5-25 18:18
请问456852,你的程序可满足我的要求,我把你的程序设为最佳答案!我有一个问题请教你:可否把你编写的程序结果输出到指定的程序,做为数据用,当然,要把最前面的序列号删除掉!如把结果输到如下程序中做为数据;
data aa;
input  x   c@@;
cards;

;
run;
谢谢指点!!
我不是很明白你的用意,如果你只是要数据,那么直接data aa;set b;就可以。如果你要在现有数据基础上更换变量,可以
data _null_;
file 'c:\aa.txt'
输出到外部文件,然后用infile,input再导入进来。

9
栾昭昭 发表于 2011-5-29 23:53:49
见识了!!!
{:3_41:}{:3_48:}

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 01:00