全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2013-4-13 22:04:52
顶一下
二维码

扫码加我 拉你入群

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

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

2013-4-13 23:26:12
SAS都快忘光了。
二维码

扫码加我 拉你入群

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

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

2013-4-14 02:44:21
顶起!非常感谢!
二维码

扫码加我 拉你入群

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

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

2013-4-14 09:37:19
二维码

扫码加我 拉你入群

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

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

2013-4-14 10:42:28
pobel 发表于 2013-4-13 21:52
个人认为SAS HELP是讲的比较细的,再有SAS PROGRAMMING II也挺好。
谢谢楼主了
二维码

扫码加我 拉你入群

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

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

2013-4-14 12:03:17
研究研究
二维码

扫码加我 拉你入群

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

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

2013-4-14 12:19:42
好问,一定要支持。。。
二维码

扫码加我 拉你入群

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

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

2013-4-14 13:09:15
好文章,值得学习
二维码

扫码加我 拉你入群

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

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

2013-4-15 09:26:13
总结的好啊!
二维码

扫码加我 拉你入群

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

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

2013-4-15 09:49:43
好的好的~
二维码

扫码加我 拉你入群

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

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

2013-4-15 12:36:55
学习一下
二维码

扫码加我 拉你入群

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

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

2013-4-15 19:39:30
书上都有啊,不过能总结出来值得感谢
二维码

扫码加我 拉你入群

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

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

2013-4-15 19:56:33
pobel大侠对SAS机制的了解,在这论坛上数一数二了~
二维码

扫码加我 拉你入群

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

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

2013-4-15 21:03:12
有个问题请教一下:
rename在PDV中时怎么执行的呢?我仿照LZ写的一个put但是结果却是不懂。
程序:
data one;
retain n_1 n_2 n_3 0;
put "before rename " _all_;
rename n_1-n_3=n_3_1-n_3_3;
put "after rename " _all_;
RUN;
log中结果:
27   data one;
28   retain n_1 n_2 n_3 0;
29   put "before rename " _all_;
30   rename n_1-n_3=n_3_1-n_3_3;
31   put "after rename " _all_;
32   RUN;

before rename n_1=0 n_2=0 n_3=0 _ERROR_=0 _N_=1
after rename n_1=0 n_2=0 n_3=0 _ERROR_=0 _N_=1
NOTE: 数据集 WORK.ONE 有 1 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.03 秒
      CPU 时间         0.03 秒
疑问:为什么第2个put语句不显示改名后的变量名而还是原来的变量名?
二维码

扫码加我 拉你入群

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

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

2013-4-15 22:13:17
henryyhl 发表于 2013-4-15 21:03
有个问题请教一下:
rename在PDV中时怎么执行的呢?我仿照LZ写的一个put但是结果却是不懂。
程序:
您好,对于您的问题,我的理解是这样的:

RENAME语句中所设定的新的变量名字只会影响到输出数据集。
也就是说,SAS在将PDV中的记录输出到目标数据集的时候,才会执行rename的操作。
而PDV中所记录的还是变量原来的名字,我想正是因为这个原因,当我们需要对RENAME所指定的变量进行操作时,需要使用原变量名,而不能用新变量名。
这里使用RENAME语句应该相当于在DATA语句使用RENAME=数据集选项。

data one;
        retain n_1 n_2 n_3 0;
        put "before rename " _all_;
        n_1=n_1+1;
        n_2=n_2+2;
        n_3=n_3+3;
        rename n_1-n_3=n_3_1-n_3_3;
        put "after rename " _all_;
RUN;

data one(rename=( n_1-n_3=n_3_1-n_3_3));
        retain n_1 n_2 n_3 0;
        put "before rename " _all_;
        n_1=n_1+1;
        n_2=n_2+2;
        n_3=n_3+3;
        put "after rename " _all_;
RUN;


而如果在SET语句指定的数据集中使用RENAME=数据集选项,SAS在PDV中记录的应该就是新的名字。

data two;
    put "before set" _all_;
    set one(rename=(n_3_1-n_3_3=new1-new3));
        new1=new1+4;
        put "after set" _all_;
        put "      ";
run;

PUT语句在log中输出的是PDV中变量的名字;相应的,DATA步中对变量进行操作时,也只能用PDV中所记录的变量名。
二维码

扫码加我 拉你入群

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

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

2013-4-16 08:49:09
pobel 发表于 2013-4-15 22:13
您好,对于您的问题,我的理解是这样的:

RENAME语句中所设定的新的变量名字只会影响到输出数据集。
非常感谢楼主的解答。学习了。
二维码

扫码加我 拉你入群

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

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

2013-4-16 12:20:33
学习
二维码

扫码加我 拉你入群

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

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

2013-4-16 12:58:55
很有用啊,学习了
二维码

扫码加我 拉你入群

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

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

2013-4-18 13:12:55
thank you
二维码

扫码加我 拉你入群

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

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

2013-4-24 23:46:14
LZ 在你最后的示例代码
proc sort data=sashelp.class;
         by age;
  run;  
中缺少out=work.class(根据后面SET 部分猜测),否则会报错的(默认情况下对于SASHELP逻辑库用户只有读取的权限没有修改权限,故不能进行排序)。
二维码

扫码加我 拉你入群

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

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

2013-4-25 06:17:43
冰雨狼 发表于 2013-4-24 23:46
LZ 在你最后的示例代码
proc sort data=sashelp.class;
         by age;
谢谢指正,已修改
二维码

扫码加我 拉你入群

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

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

2013-4-25 17:03:11
二维码

扫码加我 拉你入群

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

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

2013-4-26 12:35:02
楼主是我这里见过的几个大牛之一,太强了。
二维码

扫码加我 拉你入群

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

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

2013-4-30 01:34:58
学习了!
二维码

扫码加我 拉你入群

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

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

2013-5-3 11:32:25
理解的更透彻了,
二维码

扫码加我 拉你入群

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

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

2013-5-31 15:32:36
一直不懂,今天有机会学习了。
二维码

扫码加我 拉你入群

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

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

2013-5-31 16:48:36
有些地方没看懂,不知道有哪些书籍有相关PDV
二维码

扫码加我 拉你入群

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

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

2013-7-24 16:16:52
看看
二维码

扫码加我 拉你入群

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

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

2013-7-30 10:11:41
一般情况下,DATA步的执行是一个循环的过程,也就是SAS运行到DATA步最后一句后会默认回到DATA语句继续执行。
本文来自: 人大经济论坛 SAS专版 版,详细出处参考: https://bbs.pinggu.org/forum.php? ... amp;from^^uid=3555740
个人认为只有在有set和input步的情况下data步才会循环执行。通过_n_可以看得出来。
二维码

扫码加我 拉你入群

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

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

2013-8-7 09:44:44
受教了,谢谢牛人整理
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

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