楼主: jjjn511
1175 1

[原创博文] 变量替换请求解答 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1份资源

硕士生

54%

还不是VIP/贵宾

-

威望
0
论坛币
197 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1021 点
帖子
25
精华
0
在线时间
324 小时
注册时间
2009-7-15
最后登录
2016-6-3

楼主
jjjn511 发表于 2011-9-25 13:42:29 |AI写论文
15论坛币
sas数据表如下:

              id      citing_1       citing_2      citing_3       v        
              1        11                12             13           ad
              2        21                                 23           bc


想变成如下格式:

              id              citing       v
              1                 11        ad
              1                 12        
              1                 13        
              2                 21        bc
              2                        
              2                 23         

我已经发帖请别人帮忙写了程序,但还是存在一些问题。

有人这样写的:
data test;
input id $  citing_1  citing_2  citing_3  v $;
cards;
1  11 12 13
2 21       23
;
proc transpose data=test out=new(drop=_: rename=(col1=citing) where=(^missing(citing)));
   by id v;
   var citing_:;
run;


但我按他的语句写,得出来的是这样的:
              id              citing       v

              1                 11        ad

              1                 12        ad

              1                 13        ad

              2                 21        bc

              2                 23         bc

变量v只针对第一个citing,第二第三个citing所对应的变量v都是空值,没有数据,请问应该怎么写语句?

最佳答案

YueweiLiu 查看完整内容

试一下 copy option,如下:
关键词:求解答 Transpose missing citing rename 数据表 程序

沙发
YueweiLiu 发表于 2011-9-25 13:42:30
试一下 copy option,如下:
  1. data have;
  2.         input id citing_1 citing_2 citing_3 v $;
  3. cards;
  4. 1 11 12 13 ad
  5. 2 21  . 23 bc
  6. ;

  7. proc transpose data=have out=want(drop=_name_ rename=(col1=citing));
  8.         by id;
  9.         var citing_:;
  10.         copy v;
  11. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
shenliang_111 + 1 + 1 + 1 copy都能想到..佩服

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

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

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