由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教一个SAS题目
相关主题
问一个SAS macro的问题请帮忙看3道SAS题。
请教SAS ADV 50 中的一道简单macro题目A problem from SAS Adv test
Stupid SAS programming style is driving me crazy....In SAS , How to call a macro thousands of times?
Need advice on SAS macro debuggingSAS Macro question, thanks!
为什么这两个Macro给出结果不一样哪?[合集] SAS 问题:如何在使用macro的时候保护data。
SAS PROC MODEL中变量赋值,请大侠解答~急等,谢谢!请教一个SAS 数据分配问题
请教一个SAS Macro问题。谢谢请教个SAS macro 问题
请教一个SAS ADV 的题目问个SAS题目,
相关话题的讨论汇总
话题: q1话题: question话题: survey话题: data话题: run
进入Statistics版参与讨论
1 (共1页)
f**n
发帖数: 98
1
P.S.是一道面试题,但不是原题。当时没做出来,看那位大牛能给个答案,非常感谢!
题目是:有个survey有13道题,每一题按自己意愿选1~9分,得7分及以上的算高。最后
要统计每个人得了几个高,如果达到9个,这个人就算高,否则不管。
我的做法是先把达到7的转成1,其余转成0,然后sum。 但第一步转换就出了问题(
suppose survey is the data):
data survey;
input Q1-Q13;
cards;
7 8 9 7 1 1 4 6 5 7 8 9 5
7 8 9 7 1 1 4 6 5 7 8 9 5
7 8 9 7 8 1 4 6 5 7 8 9 5
7 8 9 7 8 9 4 1 5 1 8 9 5
7 8 9 7 8 9 4 6 5 7 1 1 5
7 8 9 7 8 9 4 6 5 7 8 9 5
7 8 9 7 8 9 4 6 5 1 1 1 5
7 8 9 7 8 9 4 6 5 3 1 9 5
7 8 9 7 8 9 4 6 5 7 2 9 5
7 8 9 7 8 9 9 6 5 7 8 9 9
run;
%macro Question(num);
%do i=1 %to #
if Q&i>6 then Q&i=1;
else Q&i=0; output;
%end;
%mend Question;
options mprint mlogic;
data new;
set survey;
%Question(13)
run;
proc print data=new; run;
运行后程序有误。如果在调用%Question的时候加上一个 ; 倒是有结果出来但是算的不
对。
另外我写macro之前测过下面的程序是好的:
data new1;
set survey;
if Q1>7 then Q1=1;
else Q1=0;
run;
而且把macro 里面的do loop 如果不执行 if else,而是简单的赋值语句比如Q&i=1;
也是可以work的。请牛人帮忙指正一下到底问题出在哪里呀?
拜谢!
j******o
发帖数: 127
2
可以试试用array, 应该不是太麻烦。
P****D
发帖数: 11146
3
data new;
set survey;
array answer {*} Q1-Q13;
array binaryanswer {*} QBin1-QBin13;
do i=1 to HBOUND(answer);
if answer{i}>6 then binaryanswer{i}=1;
else binaryanswer{i}=0;
end;
if sum(of QBin1-QBin13)>=9 then High=1;
else High=0;
drop QBin1-QBin13 i;
run;
我觉得你对do loop还不太熟练。循环里那个i不是那样用的。建议找两个例子仔细学习
一下。另祝你顺利找到工作!
s******8
发帖数: 102
4
data new;
set survey;
array q(13) q1-q13;
t=0;flag=0
do i=1 to 13;
t+q(i)>6;
end;
if t ge 9 then flag=1;
drop t;
run;
f**n
发帖数: 98
5
非常感谢楼上两位的solution。都work得很好 (sun那个flag=0后面加一个;就没有bug
了)。我当时是用这个例子(example 1)http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a000543755.htm 做的,看来对do loop的理解的确不够。 谢谢呆哥的指正。我自己是做建模的,SAS是副业,所以就学艺不精了 呵呵。
请问谁能告诉我怎么送包子吗?想送几个包子给楼上两位以表谢意。
f**n
发帖数: 98
6
另外再请教一下呆哥,有没有哪里有比较好的给出各种实用例子的资源啊?从例子里学
的确比看说明要有效率的多。
k*z
发帖数: 4704
7
俄。。。我没工作的时候总是听到建模就高山仰止。。。现在听到建模就捂嘴偷笑。
f**n
发帖数: 98
8
让牛人见笑了 :-) 我们是搞认知基础研究的,所以develop model是主要工作了,的
确不比在industry那么“实用”。现在找工作反正看到相关的都投一下了,不管能不能
上也是个锻炼。
P****D
发帖数: 11146
9
如何发包子呢?(10个伪币为一个包子)家页--个人参数设置--金融中心--银行转账--
填入用户ID、伪币金额

【在 f**n 的大作中提到】
: 让牛人见笑了 :-) 我们是搞认知基础研究的,所以develop model是主要工作了,的
: 确不比在industry那么“实用”。现在找工作反正看到相关的都投一下了,不管能不能
: 上也是个锻炼。

f**n
发帖数: 98
10
多谢多谢! 我还以为自己有不少包子呢,原来只有3.5个 :p 转了2个给呆哥,1个给
sun,不好意思啦,很少发帖,show hand了 :-)
l****y
发帖数: 108
11
lz的code就是macro里面多了一个output
如果把那个output去掉,结果就对了,
不过当然还是用array比较方便啦
1 (共1页)
进入Statistics版参与讨论
相关主题
问个SAS题目,为什么这两个Macro给出结果不一样哪?
How to set initial dataset to zero in a SAS macro?SAS PROC MODEL中变量赋值,请大侠解答~急等,谢谢!
SAS help请教一个SAS Macro问题。谢谢
Help Please! SAS Advanced 考证题求助请教一个SAS ADV 的题目
问一个SAS macro的问题请帮忙看3道SAS题。
请教SAS ADV 50 中的一道简单macro题目A problem from SAS Adv test
Stupid SAS programming style is driving me crazy....In SAS , How to call a macro thousands of times?
Need advice on SAS macro debuggingSAS Macro question, thanks!
相关话题的讨论汇总
话题: q1话题: question话题: survey话题: data话题: run