Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
首先介绍如何使用SAS。未排序的_Sas - Fatal编程技术网

首先介绍如何使用SAS。未排序的

首先介绍如何使用SAS。未排序的,sas,Sas,我有这个问题 我的代码是 data step10; set step9; by referenceid NOTSORTED; if first.referenceid then JOIN_KEY=1; ELSE JOIN_KEY+1; run; 然后输出显示 最后两行应该是2,因为前面已经存在“MBA1”和“MBA2” 除此之外,这两行应该是1,因为它是唯一的 如何更改代码?A by group是相邻行的序列,具有相同的by var值 NOTSORTED用于处理由连续但未排序

我有这个问题

我的代码是

data step10;
  set step9;
  by referenceid NOTSORTED;
  if first.referenceid then JOIN_KEY=1;
  ELSE JOIN_KEY+1;
run;
然后输出显示

最后两行应该是2,因为前面已经存在“MBA1”和“MBA2”

除此之外,这两行应该是1,因为它是唯一的


如何更改代码?

A by group是相邻行的序列,具有相同的by var值

NOTSORTED
用于处理由连续但未排序的by值构造的组

所有示例数据都按大小为1的组显示,因为向下看列时没有重复的id值

以下是两种您可以尝试的技术:

  • referenceid
    对数据进行排序,并按组处理进行正常处理
  • 在处理数据集时,保持
    referenceid
    的散列和命中计数
散列示例(我的
sequenceId
==您的
加入密钥
):


by组是相邻行的序列,具有相同的by var值

NOTSORTED
用于处理由连续但未排序的by值构造的组

所有示例数据都按大小为1的组显示,因为向下看列时没有重复的id值

以下是两种您可以尝试的技术:

  • referenceid
    对数据进行排序,并按组处理进行正常处理
  • 在处理数据集时,保持
    referenceid
    的散列和命中计数
散列示例(我的
sequenceId
==您的
加入密钥
):

data want;
  set have;
  if _n_ = 1 then do;
    declare hash ids();
    ids.defineKey('referenceid');
    ids.defineData('referenceid', 'sequenceId');
    ids.defineDone();
  end;

  if ids.find() ne 0 
    then sequenceId = 1;
    else sequenceId + 1;

  ids.replace();
run;