楼主: JERRYLINZHE
662 3

[问答] 请教一个条件赋值的问题 [推广有奖]

  • 1关注
  • 0粉丝

大专生

95%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.9001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
246 点
帖子
27
精华
0
在线时间
104 小时
注册时间
2019-6-11
最后登录
2023-9-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data A;
input ID $1-3 CD $5-6 ;
datalines;
123 I1
124 I2
134 I3
141 I4
153 I5
164 I6
175 I7
185 I8
175 E1
125 E2
;
run;

想达到
if CD = "I1" then SEQ = 1 ;
if CD = "I2" then SEQ = 2 ;
if CD = "I3" then SEQ = 3 ;
.......
if CD = "E1" then SEQ = 9 ;

但是写 if 条件太多了,有没有好的方法可以给他们附上数值

二维码

扫码加我 拉你入群

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

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

关键词:Lines Input Then Data line

已有 1 人评分经验 收起 理由
eijuhz + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

沙发
舍身卫道 发表于 2019-9-25 18:25:41 |只看作者 |坛友微信交流群
data test_1;
length id 8. cd $8.;
input id cd;
datalines;
123 I1
124 I2
134 I3
141 I4
153 I5
164 I6
175 I7
185 I8
175 E1
125 E2
;
run;
data test_2;
set test_1;
seq=_n_;
run;
已有 1 人评分经验 论坛币 热心指数 收起 理由
祝贺人大 + 20 + 10 + 3 热心帮助其他会员

总评分: 经验 + 20  论坛币 + 10  热心指数 + 3   查看全部评分

使用道具

藤椅
JERRYLINZHE 在职认证  发表于 2019-10-24 14:36:55 |只看作者 |坛友微信交流群
我找到了一个方法,分享一下,I1-I7, E1 - E18对应排序数字1-25 ;
  1. %macro map_ie();
  2.     data ie;
  3.         length seq 8. PARAMCD $10.;
  4.         %do i = 1 %to 7;
  5.             seq = &i;
  6.             PARAMCD = cats('I', &i);
  7.             output;
  8.         %end;

  9.         %do i = 8 %to 25;
  10.             seq = &i;
  11.             PARAMCD = cats('E', %eval(&i-7));
  12.             output;
  13.         %end;
  14.     run;
  15. %mend map_ie();

  16. %map_ie();
复制代码

使用道具

板凳
苹果叶 在职认证  发表于 2019-10-31 19:43:10 |只看作者 |坛友微信交流群
没搞懂为什么要用macro...
  1. data ie;
  2.   length seq 8. PARAMCD $10.;
  3.   do seq = 1 to 25;
  4.     PARAMCD = cats(ifc(seq <= 7, 'I', 'E'), seq - ifn(seq <= 7, 0, 7));
  5.     output;
  6.   end;
  7. run;
复制代码

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 14:51