楼主: tj0412ymy
4855 7

[原创博文] 求:分组累加 [推广有奖]

  • 2关注
  • 48粉丝

已卖:4314份资源

副教授

65%

还不是VIP/贵宾

-

威望
0
论坛币
11512 个
通用积分
12.7575
学术水平
72 点
热心指数
91 点
信用等级
64 点
经验
29292 点
帖子
545
精华
0
在线时间
1203 小时
注册时间
2009-3-10
最后登录
2024-2-15

楼主
tj0412ymy 发表于 2011-7-10 20:42:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
Categoryvalue1value2
A1010/2
A20SUM(10)+20/2
A30SUM(10,20)+30/2
B4040/2
B50SUM(40)+50/2
B60SUM(40,50)+60/2
B70SUM(40,50,60)+70/2
已知变量是
Categoryvalue1
如何根据上图公式求解
value2
?请高手给出SAS解决代码,万分感谢!
二维码

扫码加我 拉你入群

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

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

关键词:Category value alue 万分感谢 Sum 如何

沙发
scofieldkang 发表于 2011-7-10 20:53:16
要用sas啊 ,现在基本不用这东西了,都用spss了

藤椅
honghejing 发表于 2011-7-10 22:17:55
data b;
  set a;
retain c 0;
  if first.a then c=value1;
  else c+value1;
  value2=c+1/2*value1;
run;
run;

板凳
hssnow 发表于 2011-7-10 23:00:07
scofieldkang 发表于 2011-7-10 20:53
要用sas啊 ,现在基本不用这东西了,都用spss了
啊,这么神奇?!
My Blog: http:/hssnow.name/
宁静致远

报纸
tj0412ymy 发表于 2011-7-10 23:54:05
honghejing 发表于 2011-7-10 22:17
data b;
  set a;
retain c 0;
  if first.a then c=value1;
  else c+value1;
  value2=c+1/2*value1;
run;
run;
非常感谢给予解答,略做修改后的正解为:
data b;
  set a;
by Category;
retain c 0;
  if first.Category then c=value1;
  else c+value1;
  value2=c-1/2*value1;
run;

地板
bobguy 发表于 2011-7-11 00:38:15
tj0412ymy 发表于 2011-7-10 23:54
honghejing 发表于 2011-7-10 22:17
data b;
  set a;
retain c 0;
  if first.a then c=value1;
  else c+value1;
  value2=c+1/2*value1;
run;
run;
非常感谢给予解答,略做修改后的正解为:
data b;
  set a;
by Category;
retain c 0;
  if first.Category then c=value1;
  else c+value1;
  value2=c-1/2*value1;
run;
simplified a little,


data b;
  set a;
  by Category;
  if first.Category then value2=0;
  value2+0.5*value1;
run;

7
shenliang_111 发表于 2011-7-11 10:29:09
1# tj0412ymy

data aa(drop=s);
do _n_=1 by 1 until(last.x);
set a;
by x;
if _n_=1 then do;
value2=y/2;
s=y;
output;
end;
else do;
value2=s+y/2;
s=s+y;
output;
end;
end;
run;

8
ntsean 发表于 2011-7-11 11:38:53
似乎和楼主的要去不同,我觉得应该这样


data b(drop=sum);
  set a;
  by Category;
  if first.Category then sum=0;
  sum+value1;
  value2=sum-value1/2;
run;

或者

data b(drop=sum);
  set a;
  by Category;
  if first.Category then sum=0;
  value2=sum+value1/2;
  sum+value1;
run;
bobguy 发表于 2011-7-11 00:38
tj0412ymy 发表于 2011-7-10 23:54
honghejing 发表于 2011-7-10 22:17
data b;
  set a;
retain c 0;
  if first.a then c=value1;
  else c+value1;
  value2=c+1/2*value1;
run;
run;
非常感谢给予解答,略做修改后的正解为:
data b;
  set a;
by Category;
retain c 0;
  if first.Category then c=value1;
  else c+value1;
  value2=c-1/2*value1;
run;
simplified a little,


data b;
  set a;
  by Category;
  if first.Category then value2=0;
  value2+0.5*value1;
run;

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

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