楼主: dxystata
100 1

[问答] 如何产生一个新变量,标记为Y。 [推广有奖]

版主

学术权威

86%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
159701 个
通用积分
13243.2911
学术水平
195 点
热心指数
249 点
信用等级
160 点
经验
213742 点
帖子
3884
精华
1
在线时间
9805 小时
注册时间
2006-6-21
最后登录
2019-7-18

初级学术勋章 初级热心勋章

dxystata 发表于 2019-5-14 09:18:05 |显示全部楼层
15论坛币
  1. data aaa;
  2. input id line x;
  3. cards;
  4. 1 1 1
  5. 1 1 2
  6. 1 2 2
  7. 2 1 2
  8. 2 2 2
  9. 2 2 3
  10. 3 1 1
  11. 3 2 1
  12. 3 3 2
  13. ;
  14. run;
复制代码
如何产生一个新变量,给个体中每个line的x取值最小的一行,标记为Y。
谢谢!

最佳答案

luekemia 查看完整内容

理解的是根据id和line分组,代码如下: data aaa; input id line x; cards; 1 1 1 1 1 2 1 2 2 2 1 2 2 2 2 2 2 3 3 1 1 3 2 1 3 3 2 ; run; proc sort data = aaa; by id line x; run; data bbb;set aaa; by id line; if first.line then Y='Y'; run; 如果只是针对line分组,代码: proc sort data = aaa; by line x; run; data bbb;set aaa; by line; if first.line then Y='Y'; run;
关键词:新变量 Input cards line Data
stata SPSS
luekemia 发表于 2019-5-14 09:18:06 |显示全部楼层
理解的是根据id和line分组,代码如下:
data aaa;
input id line x;
cards;
1 1 1
1 1 2
1 2 2
2 1 2
2 2 2
2 2 3
3 1 1
3 2 1
3 3 2
;
run;

proc sort data = aaa;
by id line x;
run;

data bbb;set aaa;
by id line;
if first.line then Y='Y';
run;

如果只是针对line分组,代码:
proc sort data = aaa;
by line x;
run;

data bbb;set aaa;
by line;
if first.line then Y='Y';
run;
回复

使用道具 举报

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

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

GMT+8, 2019-7-18 22:00