请选择 进入手机版 | 继续访问电脑版
楼主: 凡尘梦1990
3368 6

[SAS EM] SAS 如何给遍历一个变量取值,并根据变量取值循环 [推广有奖]

  • 5关注
  • 2粉丝

讲师

46%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
3.0013
学术水平
5 点
热心指数
7 点
信用等级
0 点
经验
430 点
帖子
187
精华
0
在线时间
836 小时
注册时间
2012-10-9
最后登录
2024-2-1

凡尘梦1990 学生认证  发表于 2019-4-7 10:57:17 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
最简单的例子,就是比如i=1 4 10 18... 等等一些列不规律的数值,但想根据i这些取值对数据集循环取子集。该怎么写?

在Python 中直接是 for i in (); 然后就可以遍历了。。SAS中如何操作了?
二维码

扫码加我 拉你入群

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

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

关键词:数据集

已有 2 人评分经验 论坛币 收起 理由
eijuhz + 20 鼓励积极发帖讨论
aclyang + 20 精彩帖子

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

就这样吧。
凡尘梦1990 学生认证  发表于 2019-4-7 11:10:45 |显示全部楼层 |坛友微信交流群
我刚才自己写了一个 大致是这样的
data a b c;
        set Sashelp.class;
        array t(3)  (11,12,13);
        if age = t1 then output a;
        if age = t2 then output b;
        if age = t3 then output c;
run;

我现在新的问题是这样的
生成的新的数据集(a, b, c)里面有t1, t2, t3这三个变量,我不想在数据集中出现这3个变量。如果在 arry t(3) 后面加上_temporary_ 直接显示t1, t2, t3未初始化 这点我也理解了。其实可以直接在data步中drop t1 t2 t3

使用道具

whymath 发表于 2019-4-7 16:44:04 |显示全部楼层 |坛友微信交流群
使用t[i]的形式来表示对数组元素的引用,而不是直接使用数据集中的变量。
例如,可以使用t[1]代替t1,这样,如果数组是临时数组,就不会被写入到新数据集中。

使用道具

凡尘梦1990 学生认证  发表于 2019-4-8 12:00:58 |显示全部楼层 |坛友微信交流群
whymath 发表于 2019-4-7 16:44
使用t的形式来表示对数组元素的引用,而不是直接使用数据集中的变量。
例如,可以使用t[1]代替t1,这样,如 ...
好的 我试一下 谢谢

使用道具

凡尘梦1990 学生认证  发表于 2019-4-9 13:11:00 |显示全部楼层 |坛友微信交流群
whymath 发表于 2019-4-7 16:44
使用t的形式来表示对数组元素的引用,而不是直接使用数据集中的变量。
例如,可以使用t[1]代替t1,这样,如 ...
果然如此 缺失不会生成新的变量t1 t2 t3了,谢谢大佬。

使用道具

mengfanshun 发表于 2019-4-22 10:01:44 来自手机 |显示全部楼层 |坛友微信交流群
用t[1]这种格式在数据集中还是显示有t1-t3变量呀!!

使用道具

凡尘梦1990 学生认证  发表于 2019-4-23 15:01:58 |显示全部楼层 |坛友微信交流群
mengfanshun 发表于 2019-4-22 10:01
用t[1]这种格式在数据集中还是显示有t1-t3变量呀!!
前面定义数组的时候 需要加 _temporary_。
array t[3] _temporary_ (11, 12,13);

把我一楼的程序这一句改成这样就行了。

使用道具

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

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

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

GMT+8, 2024-4-17 01:03