楼主: 小鳄鱼a
1347 4

如何剔除完全相同的观测 [推广有奖]

  • 6关注
  • 10粉丝

已卖:280份资源

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

楼主
小鳄鱼a 发表于 2014-10-23 22:21:33 |AI写论文
20论坛币
数据集中变量很多,nodpukeys只能根据几个变量剔除,我想根据所有的,个人想,读取并引用数据集的变量串是难点,请高手指点

最佳答案

sniperhgy 查看完整内容

楼主你好,我又来了 这个问题,可以用proc sql部来实现的啊。首先,利用proc contents得到所有变量的名字,然后将已有的变量名字生成宏变量(请参考楼主自己的帖子https://bbs.pinggu.org/forum.php?mod=post&action=edit&fid=68&tid=3282514&pid=27033309&page=1),之后就简单了:
关键词:Keys Puke 高手指点 数据集 Key 如何

沙发
sniperhgy 发表于 2014-10-23 22:21:34
楼主你好,我又来了

这个问题,可以用proc sql部来实现的啊。首先,利用proc contents得到所有变量的名字,然后将已有的变量名字生成宏变量(请参考楼主自己的帖子https://bbs.pinggu.org/forum.php? ... 27033309&page=1),之后就简单了:
  1. proc sql;
  2.   create table distinct_dataset(drop = dummy) as
  3.   select distinct
  4.     %do i = 1 %to &para_count.;
  5.       &&VAR&i.,
  6.     %end;
  7.     1 as dummy
  8.   quit;
复制代码

藤椅
小鳄鱼a 发表于 2014-10-23 22:43:14
sniperhgy 发表于 2014-10-23 22:35
楼主你好,我又来了

这个问题,可以用proc sql部来实现的啊。首先,利用proc contents得到所有变 ...
我自己的帖子竟然打不开  不让看了   好的   这个程序边写下来    忘了问  问了忘   还好总是记得一些   多谢各位高手

板凳
sniperhgy 发表于 2014-10-23 22:47:19
小鳄鱼a 发表于 2014-10-23 22:43
我自己的帖子竟然打不开  不让看了   好的   这个程序边写下来    忘了问  问了忘   还好总是记得一些    ...
不要紧,我还记得代码呢 :
  1. %macro DistinctDT(dataset);
  2.   %if not %sysfunc(exist(&dataset.)) %then %do;
  3.     %put Dataset &dataset. is not exist, Program will shutdown.;
  4.   %end;
  5.   %else %do;
  6.     proc contents
  7.       noprint
  8.       data = &dataset. out = summary;
  9.     run;

  10.     proc sort
  11.       data = summary(keep = VARNUM NAME)
  12.       out = var_list;
  13.       by VARNUM;
  14.     run;

  15.     data _null_;
  16.       set var_list end = eof;
  17.       call symput(strip("VAR") || strip(_N_), strip(NAME));
  18.       if eof then
  19.         call symput(strip("PARA_COUNT"), _N_);
  20.     run;

  21.     proc sql;
  22.       create table distincted_dataset(drop = dummy) as
  23.       select distinct
  24.         %do i = 1 %to &PARA_COUNT.;
  25.           &&VAR&i.,
  26.         %end;
  27.         1 as dummy
  28.       from &dataset.
  29.       ;
  30.     quit;
  31.   %end;
  32. %mend;

  33. %DistinctDT(temp)
复制代码

报纸
lyfyb99 在职认证  发表于 2014-10-26 20:40:39
试试用 noduprecs 代替 nodupkey

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

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