楼主: qzuxwj138
3745 14

[原创博文] proc sql 中的问题!! [推广有奖]

11
nkwilling 发表于 2009-9-24 12:39:15 |只看作者 |坛友微信交流群
SAS SQL做不了,兄弟,好好的DATA步不玩,为啥玩SQL?

使用道具

12
qzuxwj138 发表于 2009-9-24 12:49:59 |只看作者 |坛友微信交流群
我举这个例子是简单的,用data步好做。如果是上万条,用data步不好做的啊!sas 中 sql步有的命令和函数我还不太懂,看了好多书也没有,所以来这里找高人求助啦!

使用道具

13
lion_li 发表于 2009-9-24 13:58:18 |只看作者 |坛友微信交流群
如果可以用data步做的话还是比较简单的,SQL俺不是很熟悉;
data temp;
  input var $ @@;
  cards;
  a b c d e f g h i j k l
  ;
  run;
proc sql noprint;
  select strip(put(count(*),best.)) into:nn from temp;
  select strip(var) into :x1-:x&nn from temp;
quit;
%macro create;
data temp;
  length var $256;
  retain var;
  var="&x1"; output;
  %do i=2 %to &nn;
  var=catx('_',var,"&&x&i"); output;
  %end;
run;
%mend;
%create;

使用道具

14
xiaosanmao 发表于 2009-9-24 19:23:04 |只看作者 |坛友微信交流群
qzuxwj138 发表于 2009-9-24 12:49
我举这个例子是简单的,用data步好做。如果是上万条,用data步不好做的啊!sas 中 sql步有的命令和函数我还不太懂,看了好多书也没有,所以来这里找高人求助啦!
是不好做 还是不会做呢?


data temp;
  input var $ @@;
  cards;
  a b c d e f g h i j k l
  ;
  run;
data Temp;
set Temp;
length p$ 200.;
  retain p;
if _n_=1 then  p =var;
else p=catx('_',p,var);
proc print;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

使用道具

15
qzuxwj138 发表于 2009-9-24 22:02:56 |只看作者 |坛友微信交流群
14# xiaosanmao
非常感谢你的指教啊!
你编的语句非常简洁,太漂亮了!比我自己写的好多了!虽然被你鄙视,但是今后还是希望能多教教我,我对于data步的很多语法不是太会用,函数也不太会。

使用道具

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

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

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

GMT+8, 2024-5-28 13:49