小编Joe*_*Joe的帖子

SAS:删除文件夹中的所有 .txt 文件

我需要从目录中删除所有文本文件。以下程序适用于列出的文件(例如:file.txt),但是当我尝试使用 *.txt 时它不起作用。我是否遗漏了什么或者有更好的方法来删除目录中的所有 txt 文件。

data _null_; 
      fname = "_files"; 
      rc = filename(fname,"&path\file.txt"); 
      if rc = 0 and fexist(fname) then         
         rc = fdelete(fname); 
      rc = filename(fname);
   run;
Run Code Online (Sandbox Code Playgroud)

sas

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

将日期合并到文件名中

我有报告需要发送其他的sharedrive,需要发送标题和日期.我怎样才能做到这一点

     PROC EXPORT DATA= WORK.ARG_REPORT
        OUTFILE= "/dwdata/sas_data/REPORT.csv" REPLACE;

  RUN;
Run Code Online (Sandbox Code Playgroud)

有什么可以添加到REPORT查看日期?thaks

sas

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

单词/ var在列表SAS中的位置

这可能是一个相当简单的问题,但我是SAS的新手,即使在谷歌研究过这个问题之后也很无能为力.

我有一个宏变量 -

%let list = 12AUG2013 13AUG2013 15AUG2013 16AUG2014 09SEPT2014;
Run Code Online (Sandbox Code Playgroud)

我需要得到以下东西 -

a)列表中的总字数:在R中,这将是长度(列表).但在SAS中,长度计算每个角色.COUNTW不起作用.无论如何我能做到这一点?

b)找到第i个单词:如果我需要这个列表中的第3个元素,我会在R中列出[3].我怎么能在SAS中做到这一点?

c)找到元素的位置:假设我需要知道列表变量中16AUG2014的位置,我该如何获得它?

感谢您的帮助!

sas sas-macro

3
推荐指数
2
解决办法
1234
查看次数

Oracle NVL相当于SAS

我需要将sql代码转换为sas代码;

  NVL(SPRTELE_STATUS_IND, 'A') = 'A' 
  AND NVL(SPRTELE_PRIMARY_IND, 'Y') = 'Y' 
  AND NVL(SPRTELE_SEQNO, 99) = 

    (SELECT NVL(MAX(SPRTELE_SEQNO), 99) 
   FROM SATURN.SPRTELE D 
  WHERE SPRIDEN_PIDM = D.SPRTELE_PIDM 
    AND D.SPRTELE_TELE_CODE = 'MA' 
    AND NVL(D.SPRTELE_STATUS_IND, 'A') = 'A' 
    AND NVL(D.SPRTELE_PRIMARY_IND, 'Y') = 'Y'))
Run Code Online (Sandbox Code Playgroud)

如何将NVL转换为sas?那什么意识

sql oracle sas

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

写入SAS日志

我知道我可以用来%PUT在日志窗口中写一个文本字符串,但是如果我想在日志中写一个函数的结果PROBNORM(x)呢?有没有办法做到这一点?

sas

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

如何在SAS中计算出我的宏变量的数据类型

如何在日志中打印出宏变量的数据类型

%macro mymacro(dt2);


    %LET c_mth = %SYSFUNC(intnx(month,&dt2.d,-1,e),date9.) ;
    %put &c_mth;

%mend;

mymacro('01sep2014')
Run Code Online (Sandbox Code Playgroud)

我有一堆使用%let或into分配的宏变量:我的问题是我正在尝试在日期上做一堆布尔条件,但我怀疑我的一些变量是字符串,有些是我将它们输入的日期我的代码,但三重检查肯定有办法将一些东西返回到日志

我想要类似于在R中使用str()或mode()或is.numeric()

sas sas-macro

3
推荐指数
2
解决办法
336
查看次数

合并但保留所有观察结果?

我有三个住院,门诊和专业索赔数据集.我想在这三个数据集中的任何一个中找到与烟草使用有关的独特人数(1 =是烟草,0 =烟草).

因此,数据集几乎都是:

data inpatient;
input Patient_ID Tobacco;
datalines;
1 0
2 1
3 1
4 1
5 0
;
run;
Run Code Online (Sandbox Code Playgroud)

我正在尝试合并住院病人,门诊病人和专业人员,这样我就可以使用以下三种数据集中的任何一种来获得烟草索赔的患者ID:

data tobaccoall;
merge inpatient outpatient professional;
by rid;
run;
Run Code Online (Sandbox Code Playgroud)

但是,它会在新数据集中覆盖一些带有0的1.如何更好地合并数据集以查找患者是否在任何数据集中拥有声明?

sas

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

将NA更改为SAS中的缺失值

我有一个包含5个变量的SAV文件.在其中两个中我有NA值(写成字符串.我需要将NA转换为"空值"

考虑使用"如果然后重命名"选项但没有成功,因为它只打印出一个观察或保持NA值不变.请协助.

data QUS;
if happy=NA then rename happy="";
if educ=NA then rename educ="";
run;
proc print data=QUS;
run;
Run Code Online (Sandbox Code Playgroud)

sas

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

SAS:为什么宏中的IN运算符不是默认值?

来自样本35591,

仅当在%MACRO语句中设置MINOPERATOR选项或作为SAS®系统选项时,IN运算符才能在%IF语句中使用.

需要一个单独的宏处理选项似乎是一个不必要的复杂问题.当然,由于宏处理的性质,宏IN语法及其可处理的内容必须与DATA步IN不同.但是实现强制程序员跟踪两个不同的IN,尽管它们在逻辑上是相同的.

  1. 它们在逻辑上是否相同?
  2. 要求宏IN的单独选项是为了提醒程序员与DATA步IN的区别吗?
  3. 或者,是否存在需要以这种方式实现宏IN的情况或向后兼容性问题?

MINOPERATOR的文件.

sas sas-macro

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

SAS:将&符号留在宏变量中

这应该是一个简单的,但我无法弄清楚:有些情况我需要从表的内容创建一个宏变量,它们有时包含&符号(&)作为文本的一部分.当我调用宏变量时,如何让SAS忽略&符号?例如,这段代码......

data _null_;
test="Amos&Andy";
call symputx("testvar",test);
run;
%put testvar=&testvar;
Run Code Online (Sandbox Code Playgroud)

...将此内容写入日志:

28   data _null_;
29   test="Amos&Andy";
WARNING: Apparent symbolic reference ANDY not resolved.
30   call symputx("testvar",test);
31   run;

NOTE: DATA statement used (Total process time):
  real time           0.00 seconds
  cpu time            0.00 seconds


WARNING: Apparent symbolic reference ANDY not resolved.
32   %put testvar=&testvar;
testvar=Amos&Andy
Run Code Online (Sandbox Code Playgroud)

如何让SAS忽略&符号而不将WARNING写入日志?非常感谢!

sas ampersand sas-macro

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

标签 统计

sas ×10

sas-macro ×4

ampersand ×1

oracle ×1

sql ×1