楼主: addahello
3707 6

[原创博文] 用do循环处理问题 [推广有奖]

  • 2关注
  • 0粉丝

已卖:21份资源

副教授

8%

还不是VIP/贵宾

-

威望
0
论坛币
5127 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
342 点
帖子
277
精华
0
在线时间
654 小时
注册时间
2009-10-19
最后登录
2023-6-17

楼主
addahello 发表于 2010-9-13 11:07:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
input ss1 ss2 ss3;
cards;
1 0 0
0 0 0
1 0 1
0 0 1
0 1 0
;
run;
要如何编程,使得对于每一行的变量,只要有一个值为一,就赋值给一个变量ss为1,即要得到如下值
ss1 ss2 ss3   ss
1     0       0      1
0     0       0       0
1     0       1       1
0     0       1       1
0     1       0       1
0     0       0       0
请高手指导下编程,谢谢!!!!!!!!!!!!!
二维码

扫码加我 拉你入群

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

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

关键词:do循环 cards Input Data card 如何

回帖推荐

soporaeternus 发表于2楼  查看完整内容

存在0 1之外取值的话只有0 1的话,max min 加法之类的都可以用......

本帖被以下文库推荐

沙发
soporaeternus 发表于 2010-9-13 11:21:25
存在0 1之外取值的话
  1. data a;
  2. input ss1 ss2 ss3;
  3. ss=0;
  4. array s ss1-ss3;
  5.         do i=1 to dim(s);
  6.                 if s(i)=1 then do;
  7.                         ss=1;
  8.                         leave;       
  9.                 end;
  10.         end;
  11. drop i;
  12. cards;
  13. 1 0 0
  14. 0 0 0
  15. 1 0 1
  16. 0 0 1
  17. 0 1 0
  18. 0 1 1
  19. 0 0 0
  20. 1 1 0
  21. ;
  22. run;
复制代码
只有0 1的话,max min 加法之类的都可以用......
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
addahello + 1 + 1 + 1 非常感谢!!!!!!!!!!!!!

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

Let them be hard, but never unjust

藤椅
addahello 发表于 2010-9-13 14:19:14
非常感谢soporaeternus !3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ!!!!!

板凳
高高高高高 发表于 2010-9-16 22:39:06
jhjhjhlkjlk;pl';l;

报纸
bobguy 发表于 2010-9-17 08:05:15
addahello 发表于 2010-9-13 11:07
data a;
input ss1 ss2 ss3;
cards;
1 0 0
0 0 0
1 0 1
0 0 1
0 1 0
;
run;
要如何编程,使得对于每一行的变量,只要有一个值为一,就赋值给一个变量ss为1,即要得到如下值
ss1 ss2 ss3   ss
1     0       0      1
0     0       0       0
1     0       1       1
0     0       1       1
0     1       0       1
0     0       0       0
请高手指导下编程,谢谢!!!!!!!!!!!!!
In this case,  defining ss=max( of s(*) ); is quite enough.

data a;
input ss1 ss2 ss3;
array s ss1-ss3;
ss=max( of s(*) );
cards;
1 0 0
0 0 0
1 0 1
0 0 1
0 1 0
0 1 1
0 0 0
1 1 0
;
run;

proc print; run;

地板
addahello 发表于 2010-9-17 15:52:17
又学习了,谢谢!!!!

7
addahello 发表于 2010-9-17 15:52:45
[biggrin][biggrin]

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

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