楼主: ywb0314
1805 7

请教一个变量的问题 [推广有奖]

  • 8关注
  • 3粉丝

讲师

32%

还不是VIP/贵宾

-

威望
0
论坛币
1244 个
通用积分
12.3563
学术水平
3 点
热心指数
2 点
信用等级
2 点
经验
57175 点
帖子
542
精华
0
在线时间
438 小时
注册时间
2010-2-8
最后登录
2019-4-16

楼主
ywb0314 发表于 2011-11-14 11:34:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. data res;
  2. input id x y@@;
  3. cards;
  4. 1 11 1
  5. 1 21 2
  6. 2 11 4
  7. 2 31 6
  8. 3 11 7
  9. 3 21 8
  10. 3 31 9
  11. 4 21 11
  12. 5 11 13
  13. 5 31 15
  14. ;
  15. run;
复制代码
x是(11,21,31)中的一个字符或值,创建一个新变量,当x取11是返回一个值为1,当x取21是返回一个值为2,当x取31是返回一个值为3。请问如何得到这个返回的变量。



二维码

扫码加我 拉你入群

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

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

关键词:cards Input Data card RDS 如何

本帖被以下文库推荐

沙发
ywb0314 发表于 2011-11-14 11:53:04
刚试出来
  1. %let len=2;
  2. data dg;
  3. set res;
  4. order=(index('112131',input(strip(x),$2.))+&len-1)/&len;
  5. run;
复制代码

藤椅
tj0412ymy 发表于 2011-11-14 13:24:14
ywb0314 发表于 2011-11-14 11:53
刚试出来
Another way.
  1. data dg;
  2. set res;
  3. order=input(substr(left(put(x,2.)),1,1),1.);
  4. run;
复制代码
对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

板凳
ywb0314 发表于 2011-11-14 14:08:18
tj0412ymy 发表于 2011-11-14 13:24
Another way.
刚刚忘说了其实那些字符串可能不是恰为11,21,31也有可能是ab,cd,ef

报纸
soporaeternus 发表于 2011-11-14 14:44:32
用if语句不行吗?
Let them be hard, but never unjust

地板
ywb0314 发表于 2011-11-14 14:47:01
soporaeternus 发表于 2011-11-14 14:44
用if语句不行吗?
应该可以元数据集中有18个我觉得麻烦,不知道有没有更好的方法。

7
soporaeternus 发表于 2011-11-14 14:52:31
感觉字符串连接来做的话遇到有12 的话,在那个1121的地方要悲剧啊
还是元数据做成format或者是直接表连接比较稳妥
if语句也太麻烦和不利于维护
Let them be hard, but never unjust

8
ywb0314 发表于 2011-11-14 14:57:32
soporaeternus 发表于 2011-11-14 14:52
感觉字符串连接来做的话遇到有12 的话,在那个1121的地方要悲剧啊
还是元数据做成format或者是直接表连接比 ...
我是在其中插入逗号多谢指导

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

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