楼主: mengqinqing
3305 2

if else条件语句的一个程序 [推广有奖]

  • 8关注
  • 6粉丝

已卖:1份资源

讲师

94%

还不是VIP/贵宾

-

威望
0
论坛币
64351 个
通用积分
8.0217
学术水平
7 点
热心指数
5 点
信用等级
4 点
经验
21974 点
帖子
468
精华
0
在线时间
650 小时
注册时间
2007-11-24
最后登录
2025-6-4
毕业学校
中山大学

楼主
mengqinqing 发表于 2012-9-1 10:41:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大虾,一直搞不懂下面的程序是怎么运行的,求指导,非常感谢!

原始数据:
----*----10----*----
RUTH  39 11
JOSE  32 22
SUE  30 33
JOHN  40 44

下面有四个程序,结果都不一样。
data a;
infile 'e:\sas\name.txt';
input name $1-4 @ ;
if name='RUTH' then input age 7-8 ;
else input id=10-11 ;
run;
PROC PRINT DATA=A;
RUN;

data a;
infile 'e:\sas\name.txt';
input name $ 1-4 ;
if name='JOSE' then input age 7-8 ;
else input id=10-11 ;
run;
PROC PRINT DATA=A;
RUN;

data a;
infile 'e:\sas\name.txt';
input name $ 1-4 ;
if name='SUE' then input age 7-8 ;
else input id=10-11 ;
run;
PROC PRINT DATA=A;
RUN;

data a;
infile 'e:\sas\name.txt';
input name $ 1-4 ;
if name='JOHN' then input age 7-8 ;
else input id=10-11 ;
run;
PROC PRINT DATA=A;
RUN;

二维码

扫码加我 拉你入群

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

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

关键词:else LSE ELS infile Input age

用自己的力量站在自己的位置

沙发
priss111 发表于 2012-9-1 21:32:42
1. 把name.txt 中 SUE后面加一个空格;
2. 在生成B C D的data过程的第一个input 语句中1-4后空格添加 @;
3. 把4个data过程中id后的‘=’  去掉.
  1. data a;
  2. infile 'e:\sas\name.txt';
  3. input name $1-4 @ ;       *@是行控制符即一行有多个观测值输入时@能连续读入;
  4. if name='RUTH' then input age 7-8 ;
  5. else input id 10-11 ;
  6. run;
  7. PROC PRINT DATA=A;
  8. RUN;

  9. data B;
  10. infile 'e:\sas\name.txt';
  11. input name $ 1-4 @  ;
  12. if name='JOSE' then input age 7-8 ;
  13. else input id 10-11 ;
  14. run;
  15. PROC PRINT DATA=B;
  16. RUN;

  17. data C;
  18. infile 'e:\sas\name.txt';
  19. input name $ 1-4 @ ;
  20. if name='SUE' then input age 7-8 ;
  21. else input id 10-11 ;
  22. run;
  23. PROC PRINT DATA=C;
  24. RUN;

  25. data D;
  26. infile 'e:\sas\name.txt';
  27. input name $ 1-4 @ ;
  28. if name='JOHN' then input age 7-8  ;
  29. else input id 10-11 ;
  30. run;
  31. PROC PRINT DATA=D;
  32. RUN;
复制代码

藤椅
mengqinqing 发表于 2012-9-2 15:47:58
priss111 发表于 2012-9-1 21:32
1. 把name.txt 中 SUE后面加一个空格;
2. 在生成B C D的data过程的第一个input 语句中1-4后空格添加 @;
3 ...
非常感谢!
我想问一下,为什么用原来的数据,
RUTH  39 11
JOSE  32 22
SUE  30 33
JOHN  40 44
并且用下面的程序
data a;
infile 'e:\sas\name.txt';
input name $ 1-4 ;
if name='SUE' then input age 7-8 ;
else input id=10-11 ;
run;
PROC PRINT DATA=A;
RUN;
结果为什么会是:
RUTH . .
SUE 40 .
用自己的力量站在自己的位置

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

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