A*********u 发帖数: 8976 | 1 options mprint mlogic symbolgen;
you can also use
%put phat=&phat;
to check the value of macro varialbe at any place
编了一段很长的macro来实现某个复杂模型下的EM algorithm,里面有3个macro
variable分别是&phat, &muhat, &sigma
我设定程序循环10次,所以应该产生10组phat, muhat,sigma
可是我不知道怎么把这10组phat, muhat,sigma在每一次循环的结尾打印出来,或者最
后产生一张表打印出所有10组phat, muhat,sigma。有高手知道怎么写SAS code么?不
胜感激。。 |
|
d*******1 发帖数: 854 | 2 很容易run部分的SAS CODE, 只需要先highlight需要run的部分,再摁F3就可以了. 至于
MACRO,先run %macro XXXXX, 再run macro 内部的code, 然后在run %mend XXXX和%
XXXX, 只是要注意你所需要的macro variable是否在你run的部分都定义了. |
|
f*****n 发帖数: 67 | 3 the code is shown as:
%macro merg(st);
data...
...
.../*they do not use argument st in the main code*/
%mend;
Then, it follows:
%merg(1);
The question is why they use st in the argument of merg, and why they put st
=1 to invoke the macro? Can I use %macro merg at the begining, and invoke
the macro as %merg.
It confuses me. Thanks a lot. |
|
t**i 发帖数: 688 | 4 49 data a;
50 set b;
51 do I = 1 to 3;
SYMBOLGEN: && resolves to &.
WARNING: Apparent symbolic reference I not resolved.
SYMBOLGEN: Unable to resolve the macro variable reference &i
SYMBOLGEN: Macro variable FRUIT resolves to good
SYMBOLGEN: Unable to resolve the macro variable reference &i
52 keep &&fruit&i ;
NOTE: Line generated by the macro variable "I".
52 good&
-
22
200
WARNING: Apparent symbolic reference I not resolved.
ERROR 22 |
|
s*******d 发帖数: 132 | 5 In a sas macro, I want to setup an empty dataset . like
%macro use;
data nlp0;
input estimate appstderr true mse relabias nlpupper nlplower nlpcp;
lines;
;
run;
….calculations..
%mend;
SAS doesn't allow this. The error: The macro USE generated CARDS (data lines
) for the DATA step, which could cause incorrect results. The DATA step and
the macro will stop executing.
Oh my lady Gaga!
Problem is I need to clear up the dataset from time to time so that new resu
lts won't mix with old ones.
Any |
|
A*******s 发帖数: 3942 | 6 我扫了一眼,似乎这是说global/local macro variables的
我想解决的问题是,怎么让互相嵌套的,不同层次的macro程序里创建的datasets不互
相冲突,如果这些dataset也想macro variable一样,有local/global的性质就好了。
但是还没google到相关的资料。 |
|
g********0 发帖数: 90 | 7 建一个macro,
%macro bb();
aaaa
aaaa
aaaa
aaaa
%mend bb;
我想把macro文件存在bb.sas里头
然后我在其他sas文件里头调用这个macro
该如何实现呢。。。谢谢。 |
|
x***x 发帖数: 3401 | 8 Again, the problem is how to modify the value of city. using a macro.
The change from "1. Beijing" to "Beijing" should be done by the macro.
I did NOT mean to manually change the format value and then use a macro to
attach the new format to the variable.
The goal is to call a macro to modify the format value automatically. |
|
b*f 发帖数: 3154 | 9 So what is the advantage of macros? Whatever macros can do, a procedure can
be written to do the same, correct? If the answer to this question is "YES",
then what is the point of having macros? I have difficulty explaining this
question to my LD who is learning SAS.
Baozi is sent, BTW.
macro |
|
a*****3 发帖数: 601 | 10 20 伪币firm. 我问问题有人回答的,一律30伪币。
my answer is: "macro facility" generates sas language or build-in procs/data
step. there are several 'units' in the macro facility, like input stack,
scanner, tokenizer, catalogues, that understand only 'sas macro language'.
Anything other than macro is treated as 'text'in the facility. the output of
the facility is 'sas language'. |
|
b**********i 发帖数: 1059 | 11 在写个macro,automate一个simualation program,有点地方不明。 请教在macro中有
必要把所有的if then, do while 等 都改成 %if %then, %do %while 等的 macro
statement吗? 我现在只是在最外面用macro statement语句,里面的data simulation
和analysis还是用sas statement,原样照搬,程序能run,有什么问题吗? |
|
f*****k 发帖数: 110 | 12 对第一个macro有疑问,特请教Actuaries。
这个macro少了‘%local i;’那么这个i就是在global symbol table 里了么?我记得
如果%let出现在macro里面时,其所定义的macro variable 仍然是在local symbol
table里。如果我是对的话,‘%local i;’语句用不用都无所谓啊。
另外,如何查看global symbol table 和 local symbol table 啊? |
|
p***r 发帖数: 920 | 13 purpose: 想要做一个macro 循环调用 display, 输出不同的 survey answer as text,
然 后再根据其内容,人工的输入yes/no,以便于以后的数据分析。
problem: 整个 macro 可以运行,唯一的问题是,display 的 window 在循环调用的时
候不能正确的显示 survey answer. (我是将所有的 survey answer 输出到一连串
macro variable 里面去)。
Any solution or suggestion in proving the code is appreciated
code is here
################################
data surveydata;
input x $40.;
cards;
This is programe is useless
I dont think so
Maybe its usefull
Not very much
;run;
%macro survey;
data _null_;
set surveydat... 阅读全帖 |
|
s*r 发帖数: 2757 | 14 这个是说nested definition不好吧
但没说不能再大macro里面call小macro吧
不过macro是个很奇怪的概念,与所有编程语言都不同
通常没事,不过出了bug常常是因为把它当成其他语言的function那么用 |
|
m******u 发帖数: 277 | 15 请问大家平时用SAS Macro function吗?比如%eval, %SYMPUT之类的?
今天有个面试问到关于Macro,我只回答如何自己编写Macro,如何使用。
没有回答出SAS现有的那些macro function...不知道那些function大家平常用的多吗?
谢谢。 |
|
P*****i 发帖数: 63 | 16 今天又想了下,结果取决于函数执行的时序。
一步步细分来看:
%let b=%nrstr(&a);
对于%upcase(&b)的执行时序:
1. 因为&b含有macro trigger,所以先解析到&a
2. 这里谁先谁后很重要,在input stack里接下来一步如果是%upcase接管,
那么%upcase执行后结果变成了&A
3. 下一步,因为upcase已经执行过了,针对&A, word scanner不会再重复执行一遍转换大写的操作,结果只由macro trigger再行解析到begin, 这时候解析&a和&A没区别,都指向begin.
这样解释的关键是在时序上要按照先解析第一步, 然后马上执行upcase操作,之后再解析upcase执行完之后的结果三步来才说的通.
换成QUPCASE执行.
在第二步里同样是换成了&A, 但是因为mask掉了&,结果停留在&A不再做进一步解析.
同样道理来看:
%let a=one;
%let b=two;
%let c=%nrstr(&a &b);
310 The %INDEX Function Chapter 9
%put C: &c
%... 阅读全帖 |
|
t**s 发帖数: 156 | 17 二手交易风险自负!请自行验证是否合法和一手卡!:
我想卖的物品:
Norton/Kaspersky/McAfee/Trend Macro
单张面值:
Norton NIS bundle, sealed, including NIS2011, norton utility v14.5 and
ghost v15, UPC cut off, 盒子完整无洞,但露出纸皮。
Norton 360 v4, sealed, UPC peel off, no hole.
Kaspersky IS 2011 1PC, UPC intact
Kaspersky IS 2011 3PC, UPC peel off, no hole.
trend macro maximum security 1 user, UPC intact
trend macro Internet security 1 user, UPC intact
McAfee Total Protection 2011 3PC. UPC cut, box has hole
McAfee AV 20111PC. UPC cut, box h... 阅读全帖 |
|
t**s 发帖数: 156 | 18 二手交易风险自负!请自行验证是否合法和一手卡!:
我想卖的物品:
Norton/Kaspersky/McAfee/Trend Macro
单张面值:
Norton NIS bundle, sealed, including NIS2011, norton utility v14.5 and
ghost v15, UPC cut off, 盒子完整无洞,但露出纸皮。
Norton 360 v4, sealed, UPC peel off, no hole.
Kaspersky IS 2011 1PC, UPC intact
Kaspersky IS 2011 3PC, UPC peel off, no hole.
trend macro maximum security 1 user, UPC intact
trend macro Internet security 1 user, UPC intact
McAfee Total Protection 2011 3PC. UPC cut, box has hole
McAfee AV 20111PC. UPC cut, box h... 阅读全帖 |
|
l*********i 发帖数: 483 | 19 【 以下文字转载自 Quant 讨论区 】
发信人: lamborghini (隐形汽车Reventon), 信区: Quant
标 题: Job Openning: Macro Economist
发信站: BBS 未名空间站 (Tue Oct 12 03:33:59 2010, 美东)
Applications should be sent to c****[email protected].
An excellent opportunity to join a leading Chinese investment advisory and
research firm as Macro Economist.
The Economist will conduct China economic research on such issues as Chinese
monetary and fiscal policy, industry and equity market development,
healthcare system reform, and labor and demograp... 阅读全帖 |
|
p*******y 发帖数: 944 | 20 为啥要比它俩呢?第一因为我目前只有这两个定焦。。。第二,85mm是我在跟50mm1.4
比较后留下的portrait lens,这个100mm是新来的,业余客串portrait lens。两位免
不了要决斗一下谁是新盟主。
第一张是三角架上,可以说两者都很出色,应该说100mm的更sharp些,但毕竟比85多出
了15mm。100mm的颜色也更鲜艳(所有都是同样硬件和软件条件下比较),但是我努力比
较了一下肉眼看到的颜色,似乎85暗淡些更贴近,反正两者差不多啦。
第二张是手持,这个时候IS作用才显示出来。比较是压倒性的。担心我样本个例的同志
请放心,我拍的时候是没有偏心的,毕竟85mm以前照的照片我很满意!而且每个参数下
拍两张选优,这个过程一来手并没累,其次100mm其实是后拍的,理论上还不占优势点
。其实如果拍更多,你就知道,虽然100mm也可能有那个85mmf4的那种抖动,但是就出
片率而言,绝对不是一个数量级。
第三张是顺道上载的一张macro lens照片,我终于明白什么叫:macro lens了。当你拍
远景的时候,macro lens和普通lens一样,区别就在当物体到了 |
|
G*******g 发帖数: 556 | 21 17-55 sold, 100 Macro pending
器材名称
Canon 100 Macro, 17-55 2.8 IS
付款方式(需要其他付款方式请联系卖家)
paypal echeck/ BOA transfer
卖家联系方式
PM(站内信)
器材具体描述、价格、运费:
(均为现金/BOA/check/MO或non-cc paypal价,+$5 for echeck)
(其他付款方式引起的价格变动请与卖家联系)
趁BCB最后一个月,打算把压箱底的镜头出了。
All in mint conditions, w/ everything except receipt.
17-55 IS 刚刚送去佳能清洗过,镜片内没有任何灰尘. 附带一个山寨遮光罩,正扣没有
问题,反扣拧不到头,不过不影响使用。880 shipped.
100 Macro从本版ID买的,买来之后几乎没用过,一直在盒子里放着,就偷懒用原先卖
家的照片了,盒子的照片是最近照的。420 shipped.
Buyers are welcomed to PM for discounted price.
Thanks! |
|
s******0 发帖数: 1340 | 22 发现tamron 90mm macro用在D7K上拍的片子(光圈优先)总是有点过暴,不知道为什么.回
来做了一个实验,对比了tamron 90mm macro和N+ 18-105 VR @90mm 片子的亮度,发现相
同光圈下tamron 90总是亮一点但实际快门却还快一点,试了3次都是如此,这是什么道理?
室内照明,ISO=800,光圈优先,f/5.6,相同拍摄距离.
第一张镜头是N+18-105 VR, 90mm focal length, shutter 1/125", w/ VR on.
第二张镜头是tamron 90mm macro,shutter 1/160" |
|
|
T*******I 发帖数: 5138 | 24 在数码时代,如果一个人想玩微距拍照,可以买一个自动对焦的微距镜头,但这也要花
不少钱。
这里提供一个非常省钱的方式,因为eBay上有一个非常廉价的小怪物可以用在数码单反
上拍微距照片。这个小怪物名叫Macro Extension Tube (MET)。它有三种基本形式,一
是不带对焦提示芯片的;第二种是带对焦提示芯片但不能帮助机身识别自动对焦镜头,
因而无法通过机身控制光圈;第三种是带对焦提示并可以与自动对焦镜头合用以便让机
身控制光圈。前两者价格都便宜得不可思议,后者略贵一些。如果你不想花太多钱玩微
拍,建议买第一或第二类MET,因为微距拍摄需要对焦时有耐心,因而手动镜头足够发
挥其强大的功能,而且有很多优秀而又廉价的老式手动镜头供你选择。这类镜头可以说
是取之不尽用之不竭。
对于Canon数码单反用户来说,除了这个MET,你还需要一个老式的K mount手动镜头,
可以是定焦的,也可以是变焦的,那些自身带有Macro变焦功能的变焦镜头就更好了。
这些镜头大概有以下几类:
定焦: 28mm, 50mm, 85mm 100mm, 135mm 200mm,等等
带Ma... 阅读全帖 |
|
|
|
h*******e 发帖数: 8370 | 27 这么多实质性回帖,没一个到点的,真看不下去
A,650买100L要靠抢。LZ你抢的到么?如果能抢到,那当然是要L。
B,non-L和L的主要差别,是一个能作为135L的优秀替代品,一个不能。
C,如果仅仅是作为macro使用,现在non-L的价格在400以下,非常优秀
D,non-L和L的主要差别之所以跟135L替代性有关,主要在意
1 色彩
2 焦外
3 build
IS不是重点至少不全是。point在哪里?135L是一个budget wise非常经济的头,在L里
性价比排得上前三的东西。100L在budgetwise一样经济,now that's the point。你需
要一个经济实用吃遍天下的长焦L吗?这就是135L的定位而100L所有都差一点但是丫能1
:1 macro。
E,to conclude
-- 拍微距为主,对budget有考虑,non-L
-- 作为一个hybrid的长焦定,而且对L头的色彩对比这些有敏感认识以及需求,L。 |
|
p******r 发帖数: 6213 | 28 谢谢分享。其实这区间我有个爱死小小白,一般也够用,主要也不照什么大头照舞台照
,所以大光圈用处不大。最近在local看到一个叫卖700的100L macro,忽然长了点草,
想入个macro玩玩。 |
|
n*****r 发帖数: 1087 | 29 没啥macro基础,弄过简单的macro,但都只局限于在excel内跳来跳去,没和microsoft
word interact过。
比如我有一个excel report exported from一个软件,# of columns 和 column
title都是固定的,但不同的project会有不同的row数。
比如我现在一个project从软件export出来的数据是100行,我想copy其中两个
column到word,一页word page只能放23行(具体能放多少行由macro自己检测,放不
下时就跳到下一页),每页都想有column title "Name""UnitPrice"。这样子我这
个project就需要5页word document(ceiling(100/23,1))。同理,如果我
要copy的column多到一页放不下,就要放到其他页面。如果我要copy的column title需
要3页的话,我copy到word就需要15页 (3*5=15)。
跪求大牛们指点一下从哪里入手,感谢。 |
|
z**********8 发帖数: 2049 | 30 macro是针对经常性的同一类型的TASK的,如果你是一次性的, 不需要用macro吧。
如果是经常性的,你好像也要自己做一次,SELECT, 第23行断页,每页加HEAD(feature
in the table in word),然后stop, 给这个MACRO起个名字。以后也许可以重复使用了。 |
|
c*i 发帖数: 749 | 31
为什么只选第一个cell? 其他cell怎么办?
我用了你的第二行做Macro,每次点到要转换的cell时,按Alt+F8运行Macro,成功将text
转换hyperlink. Thanks!
有没有更方便的方法,Macro查一遍所有的cell,凡是以//开头的cell自动转换成
hyperlink? |
|
b***y 发帖数: 2799 | 32 ☆─────────────────────────────────────☆
wikipad (就是好用) 于 (Tue Mar 25 20:44:41 2008) 提到:
Do you guys have any experience to share about debugging large macros? I am
using sunstudio. It definitely can not give a direct location where I am
inside the Macro. My current solution is to understand the complex macro
completely and set breakpoint at possible places. Do you guys have any
better solution? I heard that in VisualStudio people can locate in the
preprocessed file. Is that true. Thanks
☆── |
|
w***g 发帖数: 5958 | 33 C的macro基本上就是过街老鼠人人喊打。
C++11以后基本上就完全不需要用macro了。
为啥lisp的reputation就没被macro影响呢?
我觉得是lisp用的人太少。版上的lisp用户怎么看? |
|
a*****e 发帖数: 1700 | 34 现代的 Lisp(比如 Racket 或者 scheme)基本上都是 sanitized macro,主要用途也
是 meta programming,方便实现 DSL,所以大可不必谈之色变
Python 的 decorator, Julia 的 macro,都是类似的意思
C 语言那种 macro 早就应该被淘汰了,或者说已经被淘汰了
不清楚区别的可以看看 wikipedia 的解释:
https://en.wikipedia.org/wiki/Hygienic_macro |
|
t****u 发帖数: 10218 | 35 1. Macros != macro virus
Anyway, for macro virus detection/removal, I use f-macrow from f-prot.
They don't offer this simple small program any more (bundled with a
antivirus program set now). |
|
v***o 发帖数: 51 | 36 参考一下stata help里label book命令。
如果你要做一些更复杂的string manipulation,可以用lable book输出一个txt文件,
结合macro 或系统缺省的string函数(matrix function下也有很多string function)
完成对label的操作(help里找function和string),再用macro 的label functionhttp://www.stata.com/help.cgi?extended_fcn,看Macro extended functions for extracting data attributes
。。。)输会data。
其实找找学计算机的同学,他们会告诉你更有效的方法(可能你不怎么要用stata了)
。 |
|
A*********u 发帖数: 8976 | 37 如果只是计算,为啥一定要用macro呢
我用下面的code, 但是出错,好像是参数类型传递错误
%macro derv(lambda);
%global dl;
%let temp1 = %sysfunc(exp(-&lambda));
%let dl = %sysevalf(10/&lambda + 25*&temp1/(1-&temp1) - 27.21);
%mend derv;
Data;
Lam_1 = 0.1;
%derv(Lam_1);
出错 (我把它改成 %derv(0.1) 就没有问题, 但是dl的值有问题,不知道用的时候,可不
可以这样用)
ERROR: A character operand was found in the %EVAL function or %IF condition
where a numeric operand is required.
我这儿需要把Lam_1转换成numeric type吗? 用什么函数可以转化?
另外, 对于Macro parameters, 好像只有输入参数,可以把参数设置成输出参数吗,要不 |
|
p*p 发帖数: 492 | 38 编了一段很长的macro来实现某个复杂模型下的EM algorithm,里面有3个macro
variable分别是&phat, &muhat, &sigma
我设定程序循环10次,所以应该产生10组phat, muhat,sigma
可是我不知道怎么把这10组phat, muhat,sigma在每一次循环的结尾打印出来,或者最
后产生一张表打印出所有10组phat, muhat,sigma。有高手知道怎么写SAS code么?不胜感激。。 |
|
c**********e 发帖数: 2007 | 39 Suppose that I have a data set data1, with numerical variables
x, y, z. I would like to do regression y=x if a macro
variable is "a" and do z=x y if the macro variable is not
"a". The following does not work well. How to do it?
%macro regre(var);
%if "&var."="a" %then %do;
proc reg data=data1;
model y=x;
run;
%end;
%else %do;
proc reg data=data1;
model z=x y;
run;
%end;
%mend;
%regre(a);
%regre(b); |
|
a*****4 发帖数: 986 | 40 鄙人用如下Macro程序 去create New dummy,
%macro dummy (var, first, last, tot);
If (&first<=&var<=&last) then &var.&tot=1;
Else &var.&tot=0;
Label &var.&tot="var:&first-&last";
%dummy(MOSTYPE, 1,100,1)
&Mend dummy;
Data a;
Set b;
%Inc dummy;
run;quit;
出错,Log里说找不到我的phyisical file Macro dummy.
请教达人,我到底出错在哪里,怎么修改。 |
|
p**********e 发帖数: 92 | 41 You need double quote for quoting macro variables.
%macro moreput;
%do j=1 %to timeline_length;
put "week&j:" Progbyweek&j ;
%end;
%mend;
%macro moreput;
%do j=1 %to timeline_length;
put 'week&j:' Progbyweek&j ; <------ Double quote
%end;
%mend; |
|
g*******y 发帖数: 380 | 42 %macro loop
do i=1000 to 1000000
%survivial(m%i);
end;
&mend
%loop
自己检查改一下macro里的内容,比如"%".我对macro不熟,懒得查书了。 |
|
a********a 发帖数: 3176 | 43 A macro variable can be: &sites =site1 site3 site6
or &sites =site8
or &sites =site2 site5 site7 site8,
or any of the 8 site combinations.
I'd need to create a macro variable that just contains the number of the
site, i.e
&siten=1, 3, 6
or &siten=8
or &siten=2, 5, 7, 8
in order to be used in a do loop later to select only the included sites.
This is revising an existing macro that assu |
|
o******6 发帖数: 538 | 44 ☆─────────────────────────────────────☆
careerchange (Stupid) 于 (Thu Mar 19 11:19:58 2009) 提到:
In a macro, it seems that %eval(1+2) is fine, but
not %eval(1.5+0.1). How to get 1.6 from 1.5+0.1
in macro (not in data step)? Thanks.
☆─────────────────────────────────────☆
careerchange (Stupid) 于 (Thu Mar 19 11:26:35 2009) 提到:
An example is as following. The first call of %dat1 works.
How to make the second call work?
%macro dat1(num);
data one;
x=&num.;
run;
proc print data=one; run;
%m |
|
y*********4 发帖数: 76 | 45 I could use that successfully without macro as:
if (first.var1) then i=0;
but when I tried to write that in a macro
%if (first.var1) %then i=0;
it runs with error information: A character operand was found in the %EVAL
function or %IF condition where a numeric
operand is required. The condition was: (FIRST.RATERID)
btw, both var1 and i are not macro variables.
Is there anyone who know how to solve it?
Thanks a lot! |
|
t**i 发帖数: 688 | 46 I have a sas macro variable with the variable name fruit, suppose it can be
resolved to anything but the char string fruit itself.
I have other sas macro variables called fruit1, fruit2, ..., fruit5, ...,
and these variables are to be resolved as apple, orange, etc.
Now I want to keep chosen columns, say apple, orange, banana, but I have had
a problem to have the "concatnated" macro variable correctly resolved?
I have tried
&fruit&i
&&fruit&i
&&&fruit&i
&.fruit&i
&&.fruit&i
None above works.
Doe |
|
r******n 发帖数: 162 | 47 乍一想觉得很简单,结果死活搞不定,要崩溃了。。。
就是用macro来写一段code,使一个等式重复N次,比如一百次:
Y2= Y1 + a X2 + E2;
Y3= Y2 + a X3 + E3;
Y4= Y3 + a X4 + E4;
......
Y100= Y99 + a X100 + E100;
比如这么写:
%macro a;
%DO T=2 %TO 100;
%let k=???;
Y&T= Y&k + a X&T + E&T;
%END;
%mend;
怎么样才能正确定义这个k=T-1呢??
基本是第一次SAS macro,头晕脑胀,请高手赐教~~
非常感谢!!! |
|
g********0 发帖数: 90 | 48 网页版的sas tutor
SAS Macro Language里面的Creating and Using Macro Programs
28页开始。
不知道可不可以解决你的问题 |
|
y*********4 发帖数: 76 | 49 比如我有一个MACRO CALLED RANDOM_ANALYSIS(里面有很多变量,其中一个是SEED)
我现在需要调用这个MACRO 100次,每次都要用不同的SEED产生不同的随机数。
请问,我该如何用循环做呢?
%MACRO RANDOM_ANALYSIS(A,B,SEED);
...
%MEND RANDOM_ANALYSIS;
就是想实现类似下面的方法:
do i = 1 to 100
RANDOM_ANALYSIS(A,B,i)
end |
|
y*********4 发帖数: 76 | 50 I THINK IT WOULD WORD. BUT ACTUALLY WHAT I REALLY WANNA DO IT TO CALL THE
MACRO 100 TIMES.
I JUST CREATE ANOTHER MACRO TO CALL MACRO RANDOM_ANALYSIS, WITHIN WHICH, I
USED THE DO LOOP.
BUT THANK YOU VERY MUCH. |
|