由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教一个sas macro的问题
相关主题
如何重复运行sas程序100次,并把100次的结果全部output?One question about %put
[合集] SAS 问题:如何在使用macro的时候保护data。SAS code 问题
how to make this macro work, thanksStupid SAS programming style is driving me crazy....
SAS call symput question用尽心思做好了一个macro
macro问题诚心求教非常感谢Need advice on SAS macro debugging
SAS DATA 求助help on a sas question
包子问,SAS里data long to wide format急问:SAS batch submission with macro variable
请问Adv 63题 的第23题SAS help...
相关话题的讨论汇总
话题: data话题: lastobs话题: sum1话题: sum4话题: macro
进入Statistics版参与讨论
1 (共1页)
k*****u
发帖数: 1688
1
下面这组data,打算对列求和。 用data step可以如下做,现在打算把
sum1+summer1;
sum2+summer2;
sum3+summer3;
sum4+summer4;
换成用macro来改写,应该怎么写? 折腾了好久都没弄出来,求教。
我试着用array可以做,macro总是说有问题。谁能帮我写一下code? 谢谢
data wide;
input name $ summer1-summer4;
cards;
a 1 2 3 4
b 1 2 3 4
c 1 2 3 4
;
data sum_data;
set wide end=lastobs;
sum1+summer1;
sum2+summer2;
sum3+summer3;
sum4+summer4;
keep sum1-sum4;
if lastobs then output;
run;
proc print data=sum_data;
run;
s******r
发帖数: 1524
2
%macro Test(Countt);
data sum_data;
set wide end=lastobs;
%do i =1 %to &Countt;
sum&i+summer&i;
%end;
keep sum1-sum&Countt;
if lastobs then output;
run;
%mend;
%Test(4);
错了不管。

【在 k*****u 的大作中提到】
: 下面这组data,打算对列求和。 用data step可以如下做,现在打算把
: sum1+summer1;
: sum2+summer2;
: sum3+summer3;
: sum4+summer4;
: 换成用macro来改写,应该怎么写? 折腾了好久都没弄出来,求教。
: 我试着用array可以做,macro总是说有问题。谁能帮我写一下code? 谢谢
: data wide;
: input name $ summer1-summer4;
: cards;

k*****u
发帖数: 1688
3
确实是对的
能不能再帮我看看,我这么写为什么不对
%macro sumv(maxobs=);
%do i=1 %to &maxbos;
asum&i+summer&i
%if &i ne &maxobs %then ;
;
%end;
%mend;
data sum_data;
set wide end=lastobs;
%sumv(maxobs=4);
keep sum1-sum4;
if lastobs then output;
run;
a*****3
发帖数: 601
4
话说没人喜欢看别人code where there are even typos not cleared (maxbos?). The
%if %then is also used in a weird fashion. Your code worked okay after i
deleting everything i did not understan:
%macro sumv(maxobs=);
%do i=1 %to &maxobs;
sum&i+summer&i ;
%end;
%mend sumv;
option mlogic mprint symbolGEN;
data sum_data;
set wide end=lastobs;
%sumv(maxobs=4) ;
keep sum1-sum4;
if lastobs then output;
run;
杀牛给点伪币吧 马上到年关了
k*****u
发帖数: 1688
5
谢谢谢谢
一人两个包子
这就发
a*****3
发帖数: 601
6
谢杀牛20大洋
1 (共1页)
进入Statistics版参与讨论
相关主题
SAS help...macro问题诚心求教非常感谢
请教SAS split data的问题SAS DATA 求助
batch?包子问,SAS里data long to wide format
[合集] 一个sas问题请问Adv 63题 的第23题
如何重复运行sas程序100次,并把100次的结果全部output?One question about %put
[合集] SAS 问题:如何在使用macro的时候保护data。SAS code 问题
how to make this macro work, thanksStupid SAS programming style is driving me crazy....
SAS call symput question用尽心思做好了一个macro
相关话题的讨论汇总
话题: data话题: lastobs话题: sum1话题: sum4话题: macro