楼主: doushite
3904 6

求助:如何写宏代码对多个数据集进行简单随机抽样操作 [推广有奖]

  • 0关注
  • 0粉丝

初中生

42%

还不是VIP/贵宾

-

威望
0
论坛币
43 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
125 点
帖子
7
精华
0
在线时间
20 小时
注册时间
2014-4-19
最后登录
2017-3-27

楼主
doushite 在职认证  发表于 2014-8-21 11:09:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
问题如下:现有多个数据集(数据集名不规则),内含两个主要变量(code,group)。现要在各个数据集中进行简单随机抽样,方法是每个group中随机抽取一例。求助如何写宏进行批量操作?

基本程序很简单
  1. data sample;
  2. set original;
  3. where group=‘group_value’;
  4. run;
  5. proc surveyselect data=sample method=srs n=1 seed=821 out=fsample;
  6. run;
复制代码

但没学习过宏,现学又无法及时完成任务,还请各位大神前辈指教!

二维码

扫码加我 拉你入群

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

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

关键词:随机抽样 数据集 如何写 surveyselect Original original method where 如何 程序

test.xls
下载链接: https://bbs.pinggu.org/a-1615199.html

12.5 KB

测试数据

沙发
intheangel 学生认证  发表于 2014-8-21 15:51:06
就是每个group里面挑一个出来对么?

藤椅
intheangel 学生认证  发表于 2014-8-21 15:51:55
还是有很多个数据集都要处理啊?

板凳
hwb5258289 发表于 2014-8-21 16:01:03
建议将问题具体化,比如两个数据集,抽样比例等等。

报纸
doushite 在职认证  发表于 2014-8-21 16:12:33
intheangel 发表于 2014-8-21 15:51
还是有很多个数据集都要处理啊?
对的,每个group里挑出一个,一共有15个数据集要做相同处理。不过我觉得哪怕先只能用宏实现一个数据集的操作,也大大减轻工作量了。
看了一些代码,觉得有两个思路:
一、将数据集按group拆分,然后进行批量操作(即抽取一例);
二、不拆分,直接在数据集里操作(但不知道能否实现);

我现在能想到的只有:把group的所有值赋给一个宏变量,但如何把这个宏变量替换到前面基本程序里的'group_value',就不会写了...

地板
doushite 在职认证  发表于 2014-8-22 08:55:07
额,仔细看了sas proc surveyselect的页面,发现用strata选项就行了...之前虽然看了无数次,但没走心,总以为用了strata选项,N是样本总数,各层的样本数量会按比例抽取;认真读了才知道,N就是每层的数量。

7
intheangel 学生认证  发表于 2014-8-22 09:08:16
doushite 发表于 2014-8-22 08:55
额,仔细看了sas proc surveyselect的页面,发现用strata选项就行了...之前虽然看了无数次,但没走心,总以 ...
对啊~我就是记得surveyselect是可以分层抽样的啊,哪有写宏这么麻烦

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

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