楼主: 风雨同路123
1839 7

retain求教 [推广有奖]

  • 1关注
  • 0粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
1104 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
593 点
帖子
34
精华
0
在线时间
26 小时
注册时间
2012-3-14
最后登录
2013-9-10

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data y;
     input dis $   num;
     cards;
     哮喘 20
     肺心病 28
     痢疾   12
     ;

请问高手,num是频数,我怎么把数据转换成:
哮喘有20行,肺心病有28行,痢疾有12行这样的数据格式?
也就是怎么把变量按频数复制行信息
二维码

扫码加我 拉你入群

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

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

关键词:RETAIN ETA RET cards Input 肺心病 哮喘

沙发
yongyitian 发表于 2013-3-14 10:47:49 |只看作者 |坛友微信交流群
是不是 这样
data y;
  retain dis;
input dis $   num ;
    do i = 1 to num;
            output;
        end;
        drop i;
cards;
         A 20
         B 28
         C 12
;
run;

使用道具

藤椅
Eternal0601 发表于 2013-3-14 10:51:14 |只看作者 |坛友微信交流群
不一定非要retain的,下面这个应该可以解决你的问题
data y;
input dis $   num;
cards;
a 20
b 28
c 12
;
run;

data final(drop=i);
        set y;
        i=1;
        output;

        do i= 2 to num;
    output;
        end;
run;

使用道具

板凳
风雨同路123 发表于 2013-3-14 11:26:25 |只看作者 |坛友微信交流群
yongyitian 发表于 2013-3-14 10:47
是不是 这样
data y;
  retain dis;
非常感谢!正是我需要的

使用道具

报纸
风雨同路123 发表于 2013-3-14 11:27:27 |只看作者 |坛友微信交流群
Eternal0601 发表于 2013-3-14 10:51
不一定非要retain的,下面这个应该可以解决你的问题
data y;
input dis $   num;
同样非常感谢,先收着了呵呵

使用道具

地板
yangz98 发表于 2013-4-16 11:26:01 |只看作者 |坛友微信交流群
yongyitian 发表于 2013-3-14 10:47
是不是 这样
data y;
  retain dis;
弱弱地问一下,如果想把哮喘的20行数据、肺心病的28数据以及痢疾的12行数据分别提取出来,放在1diseases、2diseases和3diseases三个数据集中,用RETAIN怎么实现呢?

使用道具

7
yongyitian 发表于 2013-4-16 11:46:58 |只看作者 |坛友微信交流群
可以不用retain 的
data y;
  retain dis;
input dis $   num ;
    do i = 1 to num;
        output ;
        end;
        drop i;
cards;
A 20
B 28
C 12
;
run;

data d1 d2 d3;
   set y;
   if dis = 'A' then output d1;
   if dis = 'B'  then output d2;
   if dis = 'C' then output d3;
run;


或者
data dd1 dd2 dd3;
*  retain dis;
input dis $   num ;
   if dis ='A' then do;
                       do i = 1 to num;
                       output  dd1;
                       end;
                       end;
   if dis ='B' then do;
                       do i = 1 to num;
                        output dd2 ;
                       end;
                       end;
   if dis ='C' then do;
                       do i = 1 to num;
                         output dd3;
                       end;
                       end;
        drop i;
cards;
         A 20
         B 28
         C 12
;
run;

使用道具

8
yangz98 发表于 2013-4-17 01:22:02 |只看作者 |坛友微信交流群
yongyitian 发表于 2013-4-16 11:46
可以不用retain 的
data y;
  retain dis;
这里dis只有三个变量,要是dis有多个(譬如1000个呢)?最近正在纠结怎么批量给数据集命名呢?在论坛里看了一些帖子,挺不错的,交流一下:https://bbs.pinggu.org/thread-1280011-1-1.html
已有 1 人评分热心指数 收起 理由
yongyitian + 1 谢谢,非常好

总评分: 热心指数 + 1   查看全部评分

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 18:08