SAS:创建频率变量

辛巴达水手

我需要在变量中创建频率,而不是在proc freq输出中创建频率,而是在数据集中创建一个实际变量。我用下面的代码按ID创建运行计数。

 data work.frequencycounts;
 set work.dataset;
 count+1;
 by id;
 if first.id then count=1;
 run;

但是,我想要的变量不是运行计数,而是最终计数。我试图添加

 frequency=last.count;

到数据步骤的最后,但这没有用。

大多数时候,SAS中的每一行都是单独处理的。您不能直接获取通过数据集的遍历收益并将其放置在每一行上。

幸运的是,大约有100种方法可以完成此操作。

这是与您的方法最相似的一种。

data work.frequencycounts;
 do _n_ =1  by 1 until (last.id);
   set work.dataset;
   by id;
   if first.id then count=0;
   count+1;
 end;
 frequency=count;
 do _n_ = 1 by 1 until (last.id);
   set work.dataset;
   by id;
   output;
 end;
run;

这相当简单地运行一次,计算计数,然后在第二遍将其放置在数据集上。这是一个双重DoW循环。

另一个选择是执行PROC FREQ并将其合并-确实非常容易。第三种选择是使用PROC SQL在SQL步骤中计算计数并将其合并(SAS将为您自动进行计数)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SAS中创建新变量

来自分类Dev

SAS:从分类变量创建虚拟变量

来自分类Dev

SAS从日期变量创建季节变量

来自分类Dev

根据现有变量的频率创建新变量

来自分类Dev

SAS-从变量创建宏名称

来自分类Dev

SAS根据其他变量创建ID

来自分类Dev

sas创建带有do循环的变量

来自分类Dev

SAS类别划分的频率

来自分类Dev

sas proc 表格(频率)

来自分类Dev

R-创建具有相同值频率的变量矩阵

来自分类Dev

R-创建具有相同值频率的变量矩阵

来自分类Dev

创建等于另一列/因子频率的变量/列

来自分类Dev

使用现有变量组创建新的SAS变量组

来自分类Dev

在SAS中使用多个变量创建多个变量

来自分类Dev

仅使用 sas 中的宏变量创建 (%let) 创建宏

来自分类Dev

SAS数据集中的累积频率

来自分类Dev

如何在SAS宏中创建字符变量?

来自分类Dev

SAS过程基于变量值创建新列

来自分类Dev

创建宏变量具有SAS中的日期列表

来自分类Dev

在SAS 9.4中使用多维创建变量

来自分类Dev

如何使用条件在SAS中创建变量的子集

来自分类Dev

创建频率阵列

来自分类Dev

如何创建频率矩阵?

来自分类Dev

每组创建频率表

来自分类Dev

使用第三个值的频率作为值创建2个变量矩阵

来自分类Dev

在SAS中创建从其他变量计算得出的变量

来自分类Dev

跨多个变量的值的频率?

来自分类Dev

在R中创建频率表

来自分类Dev

创建一个新的SAS变量,该变量按ID变量的第一个日期递增