全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3901 7
2016-10-22
悬赏 30 个论坛币 已解决
如标题。

数据源假如就是1,2,3,4,5,。。。

怎样将这些数每6个分到一组?

怎么将每7个分为一组?

每n个呢?

我知道有个 rank group代码,但是这个只能将数据分为多少组,不能指定每组有多少数据。

求大神帮忙!MUA!


最佳答案

l1i2n3i4n5g 查看完整内容

data test; do x=1 to 100; output; end; run; %let y=6; data test1; set test; n=_n_; retain group 0; if mod(n-1,&y.)=0 then group=group+1; run;
二维码

扫码加我 拉你入群

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

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

全部回复
2016-10-22 11:20:29
data test;
do x=1 to 100;
output;
end;
run;

%let y=6;
data test1;
set test;
n=_n_;
retain group 0;
if mod(n-1,&y.)=0 then group=group+1;
run;
二维码

扫码加我 拉你入群

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

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

2017-12-8 11:41:02
l1i2n3i4n5g 发表于 2016-10-22 11:20
data test;
do x=1 to 100;
output;
您好,请问一下,如果是循环取值怎么写呀?比如1-6分为一组,2-7分为一组,3-9,4-9...这样
二维码

扫码加我 拉你入群

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

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

2017-12-8 13:24:37
紫月170 发表于 2017-12-8 11:41
您好,请问一下,如果是循环取值怎么写呀?比如1-6分为一组,2-7分为一组,3-9,4-9...这样
/*建立测试数据集*/
data test;
   do x=1 to 100;
      output;
   end;
run;

%let y=6;   /*在此设置每组的观测数*/
data test1;
do group=1 to n;  /*根据要求可知分成n组(nobs=n)*/
   do i=1 to &y;  /*每组有y个观测*/
      p=group-1+i;   /*计算指针位置*/
      if group=n and i=&y then stop;   /*使用指针时,要用stop*/
      if p>n then continue;   /*最后几组观测数小于y,这一行与上一行不能交换位置*/
      set test nobs=n point=p;   /*获得数据集test的观测数为n,指针指向第p个观测*/
      output;
   end;
end;
run;
二维码

扫码加我 拉你入群

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

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

2017-12-8 13:57:52
l1i2n3i4n5g 发表于 2017-12-8 13:24
data test;
do x=1 to 100;
output;
学习了,谢谢!!
二维码

扫码加我 拉你入群

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

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

2017-12-8 14:56:13
l1i2n3i4n5g 发表于 2017-12-8 13:24
/*建立测试数据集*/
data test;
   do x=1 to 100;
我还想再问一下,如果我的股票数据是按代码分组的,000001 一段000002一段....这样纵向连接的,这个循环分组能不能也按股票代码分,就是6个一组6个一组之后如果到了新的股票代码就停止,不要让不同的股票的值分进一个组里,可以吗?代码列名为daima  我是新手,不太会在您这个基础上改。。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群