如何将具有一定行数的SAS数据集拆分为sas数据集/或TXT文件?

问题描述 投票:0回答:1

我有一个索赔数据集,我想将其分割为TXT文件。主要问题是,单个TXT文件只能包含两个声明(应写出所有出现的声明),下一个声明应写入另一个txt或数据集,即,如果我在文件中有10个声明,则我应该有5个声明文件/数据集作为输出。

我的数据看起来像这样:

                                         Obs    Tin          Claim_Id
                                         1    271408630    EDY03JHKK00
                                         2    271408630    EDY03JHKK01
                                         3    271408630    EDY03JHKK01
                                         4    271408630    EDY03JHKK01
                                         5    271408630    EDY03JHKK01
                                         6    271408630    EDY03JHKK01
                                         7    271408630    EDY03JHKK01
                                         8    271408630    EDY03JHKK01
                                         9    271408630    EDY03JHKK01
                                        10    271408630    EDY03JHKK01
                                        11    271408630    EDY03JHKK01
                                        12    271408630    EDY03JHKK01
                                        13    271408630    EDY03JHKK01
                                        14    271408630    EK359VRPM00
                                        15    271408630    EK359VRPM00
                                        16    271408630    EK359VRPM00
                                        17    271408630    EK359VRPM00
                                        18    271408630    EK359VRPM00
                                        19    271408630    EK359VRPM00
                                        20    271408630    EK359VRPM00
                                        21    271408630    EK359VRPM00
                                        22    271408630    EK359VRPM00
                                        23    271408630    EK359VRPM00
                                        24    271408630    EK359VRPM00
                                        25    271408630    EK359VRPM00
                                        26    271408630    EK359VRPM00
                                        27    271408630    EK359VRPM01
                                        28    271408630    EK359VRPM01
                                        29    271408630    EK359VRPM01
                                        30    271408630    EK359VRPM01
                                        31    271408630    EK359VRPM01
                                        32    271408630    EK359VRPM01

在基本SAS中尝试

sas base
1个回答
0
投票

使用FILE语句FILEVAR=选项在运行数据步骤期间更改输出文件。

[假定数据集已按Claim_Id进行了预排序,或者在Tin内对Claim_Id进行了排序。 BY处理可以计算遇到的组数,并每2个组更改文件名。如果每个文本文件中的声明数是3(或其他一些#)而不是2,请调整文件名结构中的模数测试和除数。

data have;
  do tin = 1 to 20;
    do claimid = 1 to 9;
      do item = 1 to ceil(20 * ranuni(123));
        value = 100 + floor(50*ranuni(123));
        output;
      end;
    end;
  end;
run;

data _null_;
  set have;
  by tin claimid;

  if first.claimid then do;
    retain claimgroup 1;
    claimgroup+1;
    if mod(claimgroup,2) = 0 then filename = cats('c:\temp\claims_pair#', claimgroup/2);
  end;

  file pairs filevar=filename dlm=','; 

  put tin claimid item value;
run;
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.