全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6086 15
2010-12-20
各位,有个程序不知应该怎么写,请大家帮忙?我有一个数据data1,其中包括2个变量x1、x2。我想生成新的数据集data2,其中根据data1中x1的变量生成对应的若个条记录。比如数据集data1为

            x1           x2
50.2
40.25
30.333333



我要生成数据集data2,其中,新生成变量x3。如data1中变量x1第一条记录为5,则x3为5个x2,即0.2,0.2,0.2,0.2,0.2。如此类推。如下


     x1     x3
50.2
50.2
50.2
50.2
50.2
40.25
40.25
40.25
40.25
30.333333
30.333333
30.333333


由于x1较多,所以不知道该怎样写这个程序。希望大家帮忙!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-12-20 22:19:39
复制代码
二维码

扫码加我 拉你入群

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

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

2010-12-20 22:58:15
data data2
set  data1;
do while(n lt a);
n+1;output;
end;
run;
二维码

扫码加我 拉你入群

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

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

2010-12-20 23:01:54
好像不行啊!

515  data x3(drop=i rename=(x2=x3));
516   set x2;
517   do i=1 to x1;
518    output;
519   end;
520  run;
NOTE: 变量 x1 未初始化。
WARNING: 从未引用过 DROP、KEEP 或 RENAME 列表中的变量 x2。
ERROR: 无效的 DO 循环控制信息,INITIAL 或 TO 表达式缺失,或 BY 表达式缺失、为 0 或无效。
y=4 c=0.25 i=1 x1=. _ERROR_=1 _N_=1
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: 从数据集 WORK.X2 读取了 1 个观测。
WARNING: 数据集 WORK.X3 可能不完整。该步停止时,共有 0 个观测和 3 个变量。
WARNING: 数据集 WORK.X3 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.32 秒
      CPU 时间         0.04 秒


2# elek.me
二维码

扫码加我 拉你入群

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

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

2010-12-20 23:15:20
4# tsdy

楼主elek.me的程序是对的,只不过少了Run而已
修改成
data have;
        input x1 x2;
cards;
5        0.2
4        0.25
3        0.333333
;
Run;
data want(drop=i rename=(x2=x3));
        set have;
        do i=1 to x1;
                output;
        end;
run;
二维码

扫码加我 拉你入群

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

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

2010-12-20 23:16:57
好像也不行啊!

528  data x3;
529   set x2;
530   do while(n lt x1);
531   n+1;
532   output;
533   end;
534   run;
NOTE: 变量 x1 未初始化。
NOTE: 从数据集 WORK.X2 读取了 468 个观测。
NOTE: 数据集 WORK.X3 有 0 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.03 秒
      CPU 时间         0.03 秒

3# tiantianfrm
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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