楼主: dxystata
1292 2

如何产生一个新的变量 [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2016-11-9 21:53:46 |AI写论文
10论坛币
  1. data aaa;
  2. input no x$;
  3. cards;
  4. 1  a
  5. 1  a
  6. 1  c
  7. 1  c
  8. 2  b
  9. 2  b
  10. 2  d
  11. 2  d
  12. 3  n
  13. 3  n
  14. 3  m
  15. 3  m
  16. ;
  17. run;
复制代码
希望产生一个新变量y
no x y
1  a  1
1  a  1
1  c  2
1  c  2
2  b  1
2  b  1
2  d  2
2  d  2
3  n  1
3  n  1
3  m 2
3  m 2







最佳答案

wwang111 查看完整内容

proc sort data=aaa; by no x; run; data wanted; set aaa; by no x; if first.no then y=0; if first.x then y+1; run;
关键词:cards Input card Data Run 如何

沙发
wwang111 发表于 2016-11-9 21:53:47
proc sort data=aaa;
by no x;
run;

data wanted;
set aaa;
by no x;
if first.no then y=0;
if first.x then y+1;
run;
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 2 + 2 + 2 热心帮助其他会员

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

藤椅
dogmamongo 发表于 2016-11-9 22:19:49
data aaa;
   set aaa;
      retain y 0;
          x1=lag(x);
          if x^=x1 then y=y+1;
          if no^=lag(no) then y=1;
          drop x1;
run;
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 2 + 2 + 2 热心帮助其他会员

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

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

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