楼主: carol1222
4793 10

[问答] macro里面的%If相关问题 [推广有奖]

  • 5关注
  • 0粉丝

硕士生

41%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1283 点
帖子
157
精华
0
在线时间
74 小时
注册时间
2010-5-6
最后登录
2014-11-13

楼主
carol1222 发表于 2012-5-16 11:40:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我要计算一个proc means,然后有条件是if type=XX;
那么这个宏程序要怎么写呢?要用到哪个宏程序呢?type前面要用什么?
%macro xx;
%if type=xx %then %do;
proc means;
run;
%end;

二维码

扫码加我 拉你入群

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

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

关键词:Macro acr CRO Mac means 程序

回帖推荐

webgu 发表于3楼  查看完整内容

%macro proc_means(dsn,filter,var); proc means data=&dsn (where=(type="&filter")); var=&var; run; %mend proc_means; %proc_means(a,xx,var1);

本帖被以下文库推荐

花有再开日 人无再少年

沙发
carol1222 发表于 2012-5-16 11:42:04
然后这个type也是在数据集A里面的,下面的proc mean也是对data A进行的
花有再开日 人无再少年

藤椅
webgu 发表于 2012-5-16 11:52:50
%macro proc_means(dsn,filter,var);
   proc means data=&dsn (where=(type="&filter"));
    var=&var;
   run;
%mend proc_means;

%proc_means(a,xx,var1);
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

板凳
carol1222 发表于 2012-5-16 11:58:47
webgu 发表于 2012-5-16 11:52
%macro proc_means(dsn,filter,var);
   proc means data=&dsn (where=(type="&filter"));
    var=&var; ...
主要我的type不是一个值,是一个函数呢,就是我要选择type=index(brand,"A"),这样的话,filter就不能是函数了吧??
花有再开日 人无再少年

报纸
webgu 发表于 2012-5-16 12:51:08
不是不可以。用%index就即可。但是否必要?是否合适?
type的值的集合是什么 ?index(brand,"A")的值的集合又是什么 ?且每次调用宏时,index(brand,"A")的值应该是唯一的。但是你的brand也是变量吧?
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

地板
carol1222 发表于 2012-5-16 14:33:11
webgu 发表于 2012-5-16 12:51
不是不可以。用%index就即可。但是否必要?是否合适?
type的值的集合是什么 ?index(brand,"A")的值的集合 ...
对的,brand也是一个变量,比如有student A,那我我要从brand里面选择A出来作为type,如果brand包含A,那么就对对应的那条记录做一个proc means,求score的均值。
花有再开日 人无再少年

7
webgu 发表于 2012-5-16 16:03:06
1.index 返回的是找到A的第一个位置,不是"A" 这一值 。
2. 想分别求各类学生的均值,可以用BY 语句即可。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

8
qqyy402 发表于 2012-5-16 21:10:15
给个数据集,我来帮你搞,可以用宏变量把值存在里面,然后再在你之后的macro里面判断~
嗯嗯,你知我是谁~
Life is like a Markov chain.
You never know where you gonna go.

9
carol1222 发表于 2012-5-23 15:51:34
qqyy402 发表于 2012-5-16 21:10
给个数据集,我来帮你搞,可以用宏变量把值存在里面,然后再在你之后的macro里面判断~
嗯嗯,你知我是谁~
fafa
花有再开日 人无再少年

10
carol1222 发表于 2012-5-23 15:52:11
qqyy402 发表于 2012-5-16 21:10
给个数据集,我来帮你搞,可以用宏变量把值存在里面,然后再在你之后的macro里面判断~
嗯嗯,你知我是谁~
你懂我的意思是啥了不?
花有再开日 人无再少年

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 17:52