楼主: cynthialam
4274 24

[原创博文] 【Help】SAS综合查询,定义新指标 [推广有奖]

  • 0关注
  • 4粉丝

已卖:77份资源

博士生

43%

还不是VIP/贵宾

-

威望
0
论坛币
2921 个
通用积分
9.4100
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
136 点
帖子
258
精华
0
在线时间
99 小时
注册时间
2009-2-7
最后登录
2024-8-17

楼主
cynthialam 发表于 2011-12-20 15:47:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
问题可简单描述为:
有一组8人,两两相连,假设有连接的一群人为一个圈子的话,怎么从以下的数据中划分这两个圈子?
有数据如下:
A        B
1        2
2        1
2        3
3        2
3        4
4        3
5        6
5        8
6        5
6        7
7        6
8        5

这个数据中,结果应为“1-4为一个群组(编号为1),5-8为一个群组(编号为2)”。现在如果只知道上面这个数据,怎么把这两拨人分开来呢?

想了好久没有答案,烦闷ing
求解答~
二维码

扫码加我 拉你入群

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

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

关键词:Help elp ING 求解答

回帖推荐

soporaeternus 发表于10楼  查看完整内容

类似的搜索都可以用hash来实现,就是做之前需要预判hash的大小,以免内存不够

本帖被以下文库推荐

沙发
cynthialam 发表于 2011-12-20 16:22:39
没人解答么?

藤椅
有福有德 在职认证  发表于 2011-12-20 16:27:53
感觉不是很清楚,建议您把要实现的结果写出来,这样可以很好的帮您解答
所有模型都是错的

板凳
cynthialam 发表于 2011-12-20 16:32:58
编号        群组编号
1        1
2        1
3        1
4        1
5        2
6        2
7        2
8        2

报纸
cynthialam 发表于 2011-12-20 16:34:44
有点类似爬行搜索的那种,觉得用多重循环能做出来。但SAS无论是数据步还是SQL过程都好像有所限制,一直也没能写出来

地板
cynthialam 发表于 2011-12-20 16:35:22
有福有德 发表于 2011-12-20 16:27
感觉不是很清楚,建议您把要实现的结果写出来,这样可以很好的帮您解答
编号        群组编号
1        1
2        1
3        1
4        1
5        2
6        2
7        2
8        2

7
有福有德 在职认证  发表于 2011-12-21 10:01:03
  1. data aa;
  2. input a b;
  3. cards;
  4. 1 2
  5. 2 1
  6. 2 3
  7. 3 2
  8. 3 4
  9. 4 3
  10. 5 6
  11. 5 5
  12. 6 5
  13. 6 7
  14. 7 6
  15. 8 5
  16. ;
  17. run;
  18. data aa;
  19. set aa;
  20. by a;
  21. retain jj;
  22. if         first.a then jj=1;
  23. if last.a then output;
  24. run;
  25. data aa(drop=b rename=(jj=b));
  26. set aa;
  27. if a>4 then jj=2;
  28. run;
  29. proc print;run;
复制代码
所有模型都是错的

8
cynthialam 发表于 2011-12-21 16:44:52
有福有德 发表于 2011-12-21 10:01
谢谢答复,可是这个代码是根据结果倒推的。。。。现实情况下,是没有结果的。。。。。
还是谢谢你~~~

9
cynthialam 发表于 2011-12-21 16:46:55
或许没有描述清楚,这其实是一个网状的问题。
纠结了2天的SAS,没能解决可能就在于SAS对于网状数据的处理能力问题。
目前,已找到解决方法,用UCINET~
感兴趣的可以去看一下。
不过,UCINET是采用矩阵输入的~不知SAS用矩阵可不可行~
高手们可以继续帮忙扫下“盲”~


10
soporaeternus 发表于 2011-12-22 09:36:50
cynthialam 发表于 2011-12-21 16:46
或许没有描述清楚,这其实是一个网状的问题。
纠结了2天的SAS,没能解决可能就在于SAS对于网状数据的处理能 ...
类似的搜索都可以用hash来实现,就是做之前需要预判hash的大小,以免内存不够
  1. data _null_;
  2.         if _N_=1 then do;
  3.                 declare hash myhash();
  4.                 myhash.definekey("A");
  5.                 myhash.definedata("A","Grp");
  6.                 myhash.definedone();
  7.         end;
  8.         set a END=EOF;
  9.         rc=myhash.find();
  10.         if  rc then do;
  11.                 Grp+1;
  12.                 myhash.add();
  13.         end;
  14.         A=B;
  15.         rc=myhash.find();
  16.         if rc then do;
  17.                 myhash.add();
  18.         end;


  19.         if EOF then do;
  20.                 rc=myhash.output(dataset:"b");
  21.         end;
  22. run;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

Let them be hard, but never unjust

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 12:29