小编All*_*owe的帖子

如何将宏函数的结果分配给SAS中的宏变量?

我有一个宏创建一个时间戳(附加到输出文件名).但是,我宁愿将宏变量分配给宏的结果(如果它不够圆),而不是必须记住宏赋值的宏变量.

%let tms= %tms();
Run Code Online (Sandbox Code Playgroud)

这是当前的宏....

%macro tms ;
    %* Create a Timestamp ;
 %let tms_date= %sysfunc(date(),yymmdd10.) ;  %* Todays date ;
 %let tms_time= %sysfunc(time(),time.) ;      %* Current Time ;

    %* Format mmddyyhhmmss ;
 %let tms=_%scan(&tms_date,1)%scan(&tms_date,2)%scan(&tms_date,3)%scan(&tms_time,1,:)%scan(&tms_time,2,:)%scan(&tms_time,3,:) ;

%mend ;
Run Code Online (Sandbox Code Playgroud)

你怎么引用它来使它工作?另外,我只是从宏中删除"%let tms ="吗?

此外,以下ODS转让声明的引用是否相同?

ods Tagsets.excelxp file="&outname.&tms..xml" style= Styles.XLsansPrinter ;
Run Code Online (Sandbox Code Playgroud)

感谢您抽出宝贵的时间....

sas sas-macro

2
推荐指数
1
解决办法
3190
查看次数

我可以在SAS中更改CALL EXECUTE堆栈的执行顺序吗?

我正在使用SAS 9.1.3在DATA步骤中调用一个宏,但宏生成一个PROC REPORT步骤,所以我使用CALL EXECUTE来调用它,生成所有这些PROC REPORT步骤,然后在所有这些步骤之后执行它们.数据步骤.

我正在使用一个数组,每次为这个数组中的每个元素执行宏:

DATA macro_test;
  ARRAY questions[3] $ 32 ('question1' 'question2' 'question3');

  DO i=1 to 3;
    a_question = questions(i);
    CALL EXECUTE( "%report_by_question(a_question)" ); 
  end;

RUN;
Run Code Online (Sandbox Code Playgroud)

问题是,报告输出(通常)向后 - 它将首先打印问题3,然后打印2,然后打印1.

有没有办法修改CALL EXECUTE的执行顺序,这样我可以按顺序打印问题报告,还是只做自己的事情?

谢谢!

sas sas-macro

2
推荐指数
1
解决办法
868
查看次数

如何查找具有特定长度名称的目录

我怎么能找到具有特定长度名称的目录?例如,我有一堆目录长度等于33个字符('a92e8cc611fdebcca3cf2fc8dc02c918','c442fb3f46d6c8bd17d27245290a9512'等等).find实用程序是否接受'wc -c'形式的条件?或者也许其他一些工具应该用管道输送?

unix linux find name-length

2
推荐指数
1
解决办法
2948
查看次数

从字符串中删除撇号(压缩?)

我有一个看起来像这样的字符串:

 "ABAR_VAL", "ACQ_EXPTAX_Y",  "ACQ_EXP_TAX", "ADJ_MATHRES2"
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

ABAR_VAL ACQ_EXPTAX_Y ACQ_EXP_TAX ADJ_MATHRES2
Run Code Online (Sandbox Code Playgroud)

即没有撇号或逗号和单个空格分开.

SAS 9.1.3中最干净/最短的方法是什么?

最好是类似的东西:

call symput ('MyMacroVariable',compress(????,????,????))
Run Code Online (Sandbox Code Playgroud)

为了清楚起见,结果需要单个空格分隔,没有标点符号,并包含在宏变量中.

compression sas

1
推荐指数
1
解决办法
1万
查看次数

π如何在sas内计算?

只是好奇!但我发现SAS所持有的π值实际上是不正确的.

例如:

data _null_;
x= constant('pi') * 1000000000000000000000000000;
put x= 32.;
run;
Run Code Online (Sandbox Code Playgroud)

给出(3.)141592653589792961327005696的π值

然而 - π当然是(3.)1415926535897932384626433832795(http://www.joyofpi.com/pi.html) - 到31 dp.

是什么赋予了??!!

algorithm pi constants sas

1
推荐指数
2
解决办法
1942
查看次数

标签 统计

sas ×4

sas-macro ×2

algorithm ×1

compression ×1

constants ×1

find ×1

linux ×1

name-length ×1

pi ×1

unix ×1