SAS - 创建指标变量

标签 sas

我正在使用 SAS,我想创建一个指示变量。

我拥有的数据是这样的(DATA I HAVE):

enter image description here

我想将其更改为(我想要的数据):

enter image description here

我想要使用固定数量的总时间,并且开始时间具有重复的时间值(在本例中,c1 和 c2 都在时间 3 开始)。虽然我使用的示例很小,有 5 个名称和 12 个时间值,但实际数据非常大(大约 40,000 个名称和 100,000 个时间值 - 所以我想要的结果是一个 100,000x40,000 的矩阵。)

有人可以提供有关如何处理此问题的任何提示/解决方案吗?

最佳答案

40k 变量很多。看看它的扩展效果会很有趣。如何确定停止时间?

data have;
    input starttime name :$32.;
    retain one 1;
    cards;
1 varx
3 c1
3 c2
5 c3x
10 c4
11 c5
;;;;
   run;
proc print;
   run;
proc transpose data=have out=have2(drop=_name_ rename=(starttime=time));
   by starttime;
   id name;
   var one;
   run;
data time;
   if 0 then set have2(drop=time);
   array _n[*] _all_;
   retain _n 0;
   do time=.,1 to 12;
      output;
      call missing(of _n[*]);
      end;
   run;
data want0 / view=want0;
   merge time have2;
   by time;
   retain dummy '1';
   run;
data want;
   length time 8;
   update want0(obs=0) want0;
   by dummy;
   if not missing(time);
   output;
   drop dummy;
   run;
proc print;
   run;

enter image description here

关于SAS - 创建指标变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52000275/

相关文章:

file - 导出行记录长度大于32767个字符的txt文件?

variables - 如何在 sas 中为唯一变量创建索引?

sql - 每个唯一 ID 的最小值

regex - SAS 中的正则表达式

sas - 具有不同列的联合表

r - 将具有重复测量的混合模型从 SAS 转换为 R

import - 读取固定宽度文件 - 识别空格

security - SAS 中的 ODBC 密码安全

text - SAS:删除一个字符后的所有文本

csv - 手动将 csv 文件的特定部分读入 SAS