全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2840 12
2014-06-27
向各位大侠请教!
在一个数据集里,有很多变量,其中有三十个变量,变量名为name_1-name_30,我想筛选这30个变量中,第一个不为-8的值,并将这个值,赋给新的变量new中,不知道有什么简便的方法嘛?我试了用array{30} 然后将这三十个做do循环,可是最后总选中的是最后一个不为0.有什么好的解决方法嘛~
二维码

扫码加我 拉你入群

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

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

全部回复
2014-6-27 19:53:55
复制代码
二维码

扫码加我 拉你入群

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

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

2014-6-28 19:50:50
mingfeng07 发表于 2014-6-27 19:53
哇!你好棒~ 我昨天又自己试了试 发现这样也能实现:
data test;
set a;
array array{*} name1-name30;
do i=30 to 1;
if array{i} ne -8 then new=array{i};
end;
run;
你觉得okay么? 不过还是你这个好!
二维码

扫码加我 拉你入群

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

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

2014-6-28 23:49:19
阿呆sas 发表于 2014-6-28 19:50
哇!你好棒~ 我昨天又自己试了试 发现这样也能实现:
data test;
set a;
嗯,你这个也可以,你的是倒序条件赋值,每一个循环都将所有变量都遍历了一遍,如果变量太多的话,程序运行会很慢。
二维码

扫码加我 拉你入群

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

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

2014-6-30 12:59:52
mingfeng07 发表于 2014-6-28 23:49
嗯,你这个也可以,你的是倒序条件赋值,每一个循环都将所有变量都遍历了一遍,如果变量太多的话,程序运 ...
恩!是这样的!那我能再请教一个问题吗?就是程序运行比较慢的问题。。。
我有一个20000多个变量的数据集,我要从中选取6000多个变量的数据,且按照规定排序,这个我运行了下,巨慢!!你有什么好办法吗?
二维码

扫码加我 拉你入群

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

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

2014-6-30 21:29:28
阿呆sas 发表于 2014-6-30 12:59
恩!是这样的!那我能再请教一个问题吗?就是程序运行比较慢的问题。。。
我有一个20000多个变量的数据集 ...
这个得看你实际情况,因为我不知道你的选取规则是什么,所以也不太好说。反正是尽可能让代码执行效率高就行。比方说像你那种需要遍历所有变量的情况,执行效率太低,就需要排除掉。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群