楼主: 冰棱
952 3

一个循环的问题 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
344 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1995 点
帖子
107
精华
0
在线时间
118 小时
注册时间
2006-2-27
最后登录
2018-6-15

楼主
冰棱 发表于 2012-11-20 15:15:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据如下:
a1a2a3


想得到如下的字符串:
第一位是A1里的,第二位是A2里的,第三位是A3里的。
该怎么编程呢?
我做的循环大致如下:(按列,新建3个数据集)
        set a b c;
        do i=1 to 14;
                if ida=i then name1=na;
                        do j=1 to 12;
                        if idb=j then name2=nb;
                                do k=1 to 12;
                                if idc=k then name3=nc;
                                namef=trim(name1)||trim(name2)||trim(name3);
                        end;end;end;

na nb nc 分别是a b c 里的字段,ida idb idc 分别是为他们新增的ID号。


最后的结果是,这个数据集只有14+12+12条数据,并不是14*12*12个。这是为什么呢?循环的不对啊。
哪里出了问题?
二维码

扫码加我 拉你入群

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

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

关键词:name Then trim 怎么编程 Rim 怎么编程 字符串 新建

回帖推荐

pobel 发表于3楼  查看完整内容

data步: data test1; set a; do i=1 to nobs_b; set b nobs=nobs_b point=i; do j=1 to nobs_c; set c nobs=nobs_c point=j; name1=na; name2=nb; name3=nc; namef=cats(name1,name2,name3); output; end; end; run;

沙发
pobel 在职认证  发表于 2012-11-20 15:51:55

data a;
   do ida =1 to 14;
       na=byte(64+ida);
           output;
        end;
run;


data b;
   do idb =1 to 12;
       nb=byte(96+idb);
           output;
        end;
run;

data c;
   do idc=1 to 12;
       nc=cats(idc);
           output;
        end;
run;


proc sql;
  create table test as
    select distinct ida,idb,idc,na as name1, nb as name2, nc as name3
                        , cats(na,nb,nc) as namef
                from a,b,c
                order by ida,idb,idc;
quit;
和谐拯救危机

藤椅
pobel 在职认证  发表于 2012-11-20 15:56:26
data步:

data test1;
   set a;
   do i=1 to nobs_b;
      set b nobs=nobs_b point=i;
          do j=1 to nobs_c;
             set c nobs=nobs_c point=j;
                    name1=na; name2=nb; name3=nc;
                        namef=cats(name1,name2,name3);
                 output;
          end;
        end;
run;
和谐拯救危机

板凳
冰棱 发表于 2012-11-20 17:08:06
pobel 发表于 2012-11-20 15:56
data步:

data test1;
这个太有帮助了。
set本身是一个循环,另外的两个循环,分别指定指针的位置。
谢谢!

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

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