标签: datastep

刷新PDV变量

是否有命令或快速方法将PDV中的所有现有变量设置为缺失?

我有一些代码运行如下:

Data example2; 
var1='A';
Var2='B';
Var3='C';
/* etc*/
output;
Var1='B';
output;
stop;
run;
Run Code Online (Sandbox Code Playgroud)

一旦达到第一个"输出"语句,我想将所有PDV变量重置为缺失(例如var2 =''; var3 ='';),但不必手动声明它们.有人可以帮忙吗?

sas datastep

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

sas - 使用 BY 语句计算分组数据的移动平均值

我是 SAS 初学者,我很好奇以下任务是否可以像目前在我脑海中那样更简单地完成。

我在名为 user_date_money 的表中有以下(简化的)元数据:

用户 - 日期 - 金钱

每个日历日(过去 4 年)的各种用户和日期。数据按 User ASC 和 Date ASC 排序,示例数据如下所示:

User  | Date     | Money
Anna   23.10.2013   5
Anna   24.10.2013   1
Anna   25.10.2013   12
      ....       
Aron   23.10.2013   5
Aron   24.10.2013   12
Aron   25.10.2013   4 
     ....
Zoe    23.10.2013   1
Zoe    24.10.2013   1
Zoe    25.10.2013   0
Run Code Online (Sandbox Code Playgroud)

我现在想计算货币的五天移动平均线。我从非常流行的 apprach 开始,带有这样的 lag() 函数:

data cma; 
set user_date_money;
if missing(money) then
do;
OBS = 0;
money = 0.0;
end;
else OBS = 1;
money5 = …
Run Code Online (Sandbox Code Playgroud)

sql sas datastep

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

如何删除SAS数据步骤中的重复项

如何删除SAS数据步骤中的重复项.

data uscpi;
      input year month cpi;
   datalines;
   1990  6 129.9
   1990  7 130.4
   1990  8 131.6
   1990  9 132.7
   1991  4 135.2
   1991  5 135.6
   1991  6 136.0
   1991  7 136.2
   ;
   run;

PROC SORT DATA = uscpi OUT = uscpi_dist NODUPKEY; 
 BY year ; 
 RUN; 
Run Code Online (Sandbox Code Playgroud)

我可以使用proc步骤,但如何在数据步骤中删除它.提前致谢

sas duplicates datastep

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

如何使用数据步骤而不是SQL从数据集列创建宏变量?

我们可以使用语法通过SAS SQL Procedure创建宏变量

select var into :mvar
Run Code Online (Sandbox Code Playgroud)

但我想知道在数据步骤中是否存在相同的方式.

我有一个数据集.

A    B
===  ===
a1   b1
a2   b2
a3   b3
Run Code Online (Sandbox Code Playgroud)

我可以MA使用下面的语句创建一个宏变量.

proc sql noprint;
   select "'"||A||"'" into :MA separated by ","
   from dataset;
quit;
Run Code Online (Sandbox Code Playgroud)

如何在数据步骤中执行此操作?

sas datastep sas-macro

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

在 SAS 中用换行符替换字符串

我想读取一个文件并找到单词 \xe2\x80\x9cthe\xe2\x80\x9d 并引入换行符。即查找并替换文本\xe2\x80\x98the\xe2\x80\x99\xe2\x80\x98/nthe\xe2\x80\x99 Can you please help?

\n\n
    /*input.txt*/\n    Many a slip between the cup and the lip. \n\n    /*Required output*/\n    Many a slip between \n    the cup and \n    the lip. \n\n    /*sas datastep*/\n    data inp;\n    infile "c:/tmp/input.txt";\n    /*ADD LOGIC*/\n    infile "c:/tmp/output.txt";\n    run;\n
Run Code Online (Sandbox Code Playgroud)\n

regex sas datastep

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

使用现有变量在SAS数据集中动态创建新变量

我有一个SAS数据集:

+-------+-------+-------+-------+
| var_1 | var_2 | var_3 | index |
+-------+-------+-------+-------+
|     1 |    10 |   100 |     2 |
|     2 |    20 |   200 |     1 |
|     3 |    30 |   300 |     3 |
+-------+-------+-------+-------+
Run Code Online (Sandbox Code Playgroud)

现在,我想在同一个数据集中创建一个新变量,每个行的值来自var_1,var_2和var_3之一,使用索引变量中的相应条目.

也就是说,如果我的输出变量是var_out,那么数据集将如下所示:

+-------+-------+-------+-------+---------+
| var_1 | var_2 | var_3 | index | var_out |
+-------+-------+-------+-------+---------+
|     1 |    10 |   100 |     2 |      10 |
|     2 |    20 |   200 |     1 |       2 |
|     3 | …
Run Code Online (Sandbox Code Playgroud)

variables macros sas dataset datastep

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

以不同格式挑战的数据驱动

我想带着这些日子面临的挑战来到这里.

基本上对于每个记录,应该在put语句中使用不同的格式,并且它在自己的数据中定义.

挑战不是分割datasteps并在datastep中获得想要的结果,所以避免明显的%do循环和类似:)

proc format;
    value $a 'FRS'='FIRST';
    value $b 'SCN'='SECOND';
run;
data a;
    length var $3 res $10 fmt $5;
    var='FRS'; fmt='$a.'; res=''; output;
    var='SCN'; fmt='$b.'; res=''; output;
run;
data b;
    set a;

    *your code goes here, the result should go into res variable;
    *and should be the "putted" value of var using fmt as format.;
    *an obviously non working version can be found here below;

    res=put(var,fmt);
run;
Run Code Online (Sandbox Code Playgroud)

下面是它的样子,res是预期的结果:

VAR  FMT  RES
---------------
"FRS" $a. =put("FRS",$a.)="FIRST"
"SCN" $b. =put("SCN",$b.)="SECOND"
Run Code Online (Sandbox Code Playgroud)

format sas datastep

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

标签 统计

datastep ×7

sas ×7

dataset ×1

duplicates ×1

format ×1

macros ×1

regex ×1

sas-macro ×1

sql ×1

variables ×1