楼主: yumenderen
6140 21

[问答] 如何合成多个数据集为1个数据集 [推广有奖]

11
yzzhang 发表于 2011-9-8 17:27:22
这个写了下,没在sas里测试下,可能有些语法错误,我给你测下看

12
yumenderen 发表于 2011-9-8 17:36:24
yzzhang 发表于 2011-9-8 17:27
这个写了下,没在sas里测试下,可能有些语法错误,我给你测下看
好的,非常感谢你,帮我测测看

13
yzzhang 发表于 2011-9-8 17:56:26
见上面的程序,可以了!

14
yumenderen 发表于 2011-9-8 18:05:27
yzzhang 发表于 2011-9-8 17:56
见上面的程序,可以了!
膜拜高人,终于解决了,分都给你了

15
yumenderen 发表于 2011-9-8 18:12:38
yzzhang 发表于 2011-9-8 14:41
libname a 'd:\';
data a.m;
        x=1;
请教一下:
"proc sql;
        create table dict_dsnm(where=(libnm=upcase("&libnm."))) as select distinct
                memname as dsnm, libname as libnm
        from dictionary.members        where memtype='DATA';
        select count(distinct dsnm) into :ds_n from dict_dsnm;
        quit;“中,“memname as dsnm, libname as libnm
        from dictionary.members        where memtype='DATA';“的用法都是固定的么?
还有就是我看你的宏变量末尾都加了个点,这是必须的么?

16
yumenderen 发表于 2011-9-8 18:16:11
        if _N_=&i.;
        call symput('dsnm',dsnm);
这个是什么意思呀,菜鸟看不懂,还望你指教呀

17
yzzhang 发表于 2011-9-8 18:23:25
yumenderen 发表于 2011-9-8 18:12
请教一下:
"proc sql;
        create table dict_dsnm(where=(libnm=upcase("&libnm."))) as select  ...
点就是分割符,不是每个地方都需要,但个人习惯了都加上。

18
yzzhang 发表于 2011-9-8 18:24:57
yumenderen 发表于 2011-9-8 18:16
if _N_=&i.;
        call symput('dsnm',dsnm);
这个是什么意思呀,菜鸟看不懂,还望你指教呀
_N_是自动变量,值为记录序号;
call symput 输出dsnm值给宏变量dsnm

19
yumenderen 发表于 2011-9-8 19:17:58
yzzhang 发表于 2011-9-8 18:24
_N_是自动变量,值为记录序号;
call symput 输出dsnm值给宏变量dsnm
高手呀,向你学习,谢谢你

20
guoluo 发表于 2011-9-8 20:38:04
一个更简单的方法
  1. data final;
  2.   set com: indsname=source;
  3.   name = scan(source,2);
  4. run;
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 10:14