楼主: calsunny
1372 6

请教SAS 程序! [推广有奖]

  • 2关注
  • 5粉丝

讲师

84%

还不是VIP/贵宾

-

威望
0
论坛币
3460 个
通用积分
12.8619
学术水平
2 点
热心指数
5 点
信用等级
1 点
经验
1653 点
帖子
468
精华
0
在线时间
732 小时
注册时间
2007-4-3
最后登录
2019-12-3

楼主
calsunny 发表于 2015-9-18 00:21:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想在SAS里大致想产生这样的数据:
  1. data test1;
  2.         do V1= 1 to 51 by 1;output;end;
  3. run;

  4. data test2;
  5.         do        V2 = -1.63 to 2.87 by 0.09;output;end;       
  6. run;

  7. data test3;
  8. do V3 = -1.71 to 2.79 by 0.09;output;end;
  9. run;

  10. data final;
  11. merge test1 test2 test3;
  12. if V2 = 2.87 then V2 =.;
  13. if V3 = -1.71 then V3 =.;
  14. run;
复制代码
请问我怎么样才能在一个Data step 实现?谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:Data step output outpu final Merge 程序

沙发
孤单的我们 发表于 2015-9-18 09:25:52
data final;
    do V1= 1 to 51 by 1;
        do V2 = -1.63 to 2.87 by 0.09;   
                        do V3 = -1.71 to 2.79 by 0.09;
                                if v1=int((v2+1.72)/0.09)=int((v3+1.8)/0.09) then do;
                                        if V2 = 2.87 then V2 =.;
                                        if V3 = -1.71 then V3 =.;
                                        output;
                                end;
                        end;
                end;
        end;
run;

藤椅
teqel 发表于 2015-9-18 10:12:13 来自手机
孤单的我们 发表于 2015-9-18 09:25
data final;
    do V1= 1 to 51 by 1;
        do V2 = -1.63 to 2.87 by 0.09;   
一个循环就够了

板凳
孤单的我们 发表于 2015-9-18 10:16:49
teqel 发表于 2015-9-18 10:12
一个循环就够了
请指教 do后面可以一次写3个变量吗?

报纸
teqel 发表于 2015-9-18 10:57:45 来自手机
孤单的我们 发表于 2015-9-18 10:16
请指教 do后面可以一次写3个变量吗?
当然可以。可以参考sas网站的例子

地板
teqel 发表于 2015-9-18 11:09:04 来自手机
do v1=1 to 51;
v2=-1.63+(v1-1)*1.63;
v3=-1.71+(v1-1)*1.71;
if V2 = 2.87 then V2 =.;
if V3 = -1.71 then V3 =.;
output;
end;

7
calsunny 发表于 2015-9-18 22:27:13
Capture.PNG

谢谢楼上两位, 我要的数据如上所示,V1 and V2没有关系,在我的实际需要中是其他的数据,所以必须要有这一列.
实际上在R中是这样:
V1 <- seq(1,51,1)
V2 <- seq(-1.63,2.87,0.09)
V3 <- seq(-1.71, 2.79,0.09)
final <- cbind(V1, V2, V3)
final[51,2] <- NA
final[1,3] <- NA



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

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