Proc在R中扩展

时间:2014-01-06 07:08:25

标签: r sas expand proc

我正在努力将SAS代码转换为R,因为我对SAS比较新,所以我无法理解以下代码片段 -

proc expand data=A out=B;
by number beg_date; 
id date;
convert alpha1=calpha1/transformout=(+1 cuprod -1); 
convert alpha2=calpha2/transformout=(+1 cuprod -1);
convert alpha3=calpha3/transformout=(+1 cuprod -1);
run;

我理解expand用于扩展时间序列数据,例如从每月到四季,或者合同。但是什么是by和id语句? 从引用SAS支持来看,我认为BY语句用于指定变量,以便为该组变量计算累积产品。至于ID声明,我理解这是识别观察结果的关键。任何人都可以告诉我,我的理解是否正确?为此,我是否在R中使用了transform命令? 我没有SAS许可证,所以我不能在样本数据上尝试这一点并理解输出。同样,我没有原始数据集可供使用。

1 个答案:

答案 0 :(得分:2)

从你的代码片段来看,似乎这个proc expand将创建三个变量calpha1,calpha2和calpha3。 cuprodproc expand中要输出累积产品的选项之一。因此,这将在每个beg_date组中找到所有alpha1,alpha2和alpha3的乘积,这些组的排序方式与by语句类似。我相信在使用by语句proc sort之前应该有一个proc expand

关于ID语句,原始作者似乎不想使用proc expand的默认时间设置。因此,通过在id语句中指定date变量,计算将基于date给出的时间点。

http://support.sas.com/documentation/cdl/en/etsug/63348/HTML/default/viewer.htm#etsug_expand_sect008.htm