楼主: sdwjf
2099 8

【请教】如何在data步中修改指定行(point)的数据 [推广有奖]

  • 0关注
  • 0粉丝

高中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
446 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
415 点
帖子
23
精华
0
在线时间
26 小时
注册时间
2005-4-8
最后登录
2014-5-5

楼主
sdwjf 发表于 2011-4-26 09:43:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我是一个初学者,请教一个简单的问题。

有以下数据
id group
1 1
2 1
3 1
4 2
5 2
我想统计用data步实现对各个组成员个数的统计,并且把各组个数写入每个组的第一个观察中。
希望的结果是:
id group numofgroup
1 1 3
2 1
3 1
4 2 2
5 2



以下是我的程序:
data a;
input id group;
cards;
1 1
2 1
3 1
4 2
5 2
;

data b;
set a;
by group;
retain numOfgroup;/*统计组成员个数*/
if first.group then numOfgroup=0;
numOfgroup+1;
run;
二维码

扫码加我 拉你入群

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

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

关键词:data步 Point Data int RETAIN SAS data步

回帖推荐

xiaobai922 发表于6楼  查看完整内容

data a ; input id group@@; cards; 1 1 2 1 3 1 4 2 5 2 ; run; proc sql; create table b as select id,group,n(group) as numofgroup from a group by group order by id; data b; set b; if id in (2,3,5) then numofgroup=.; run; proc print data=b; run; 我这个水平能想到的 呵呵。。结果和楼主的想要的一样

本帖被以下文库推荐

人单单聪明是不够的,人格、性情、格调、气度往往比聪明更重要。

沙发
sas_user 发表于 2011-4-26 10:04:13
SAS 提示变量没有初始化.

藤椅
sdwjf 发表于 2011-4-26 12:07:17 来自手机
请问用那个函数
人单单聪明是不够的,人格、性情、格调、气度往往比聪明更重要。

板凳
sdwjf 发表于 2011-4-26 23:37:20 来自手机
竟然没人回?自己顶一下
人单单聪明是不够的,人格、性情、格调、气度往往比聪明更重要。

报纸
sdwjf 发表于 2011-4-28 13:24:20 来自手机
再顶''''''''''
人单单聪明是不够的,人格、性情、格调、气度往往比聪明更重要。

地板
xiaobai922 发表于 2011-4-28 14:53:09
data a ;
input id group@@;
cards;
1 1 2 1 3 1 4 2 5 2
;
run;
proc sql;
create table b as
select id,group,n(group) as numofgroup
from a
group by group
order by id;
data b;
set b;
if id in (2,3,5) then numofgroup=.;
run;
proc print data=b;
run;

我这个水平能想到的 呵呵。。结果和楼主的想要的一样
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

7
sdwjf 发表于 2011-4-28 15:13:07 来自手机
其实我不想用sql实现,只是想了解如何data步扫描后,如何回头修改指定序号观测的数据。
人单单聪明是不够的,人格、性情、格调、气度往往比聪明更重要。

8
cjblovebj 发表于 2011-5-3 11:24:04
我也学习学习~~
尽最大努力,做最坏打算!

9
wb8686 发表于 2011-5-3 13:27:58
data taBLE_1;
input id group;
cards;
1 1
2 1
3 1
4 2
5 2
6 2
;
run;
proc sort data=TABLE_1;
by group;
run;
data table_2;
set  table_1;
by group;
if first.group then geshu=0;
geshu+1;
if last.group then obs=_n_;
;
run;

data table_3;
merge table_1
table_2(where=(obs^=.));
by group;
run;

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

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