私はSASコードを持っています、そして、各ステップで何が行われているかを説明するコメントを追加してほしいです。


データ終了;
    入力を設定します。
    length_rectionedバランス。
    _n_ = 1の場合
    する;
      Hash Balances_Recを宣言します（データセット： "バランス
      balances_rec.definekey（ 'sk_contrato'）;
      balances_rec。
      balances_rec.definedone（）;
      call missing（balance_ record）;
    終わり;
    rc = balances_rec.find（）;
    balance_impaged = sum（balance_impaged、-saldo_recuperada）
走る;

sort data = output;
SK_CONTRATOの降下。
走る;
Tengo un codigo SAS y me gustaria que le añadieras comentarios explicando lo que se hace en cada paso:


data salida;
    set entrada;
    length saldo_recuperado;
    if _N_ = 1 then
    do;
      declare hash saldos_rec(dataset: "saldos_recuperados(where=(&fecha_negocio lt fecha_fv and &fecha_negocio ge fecha_iv))");
      saldos_rec.definekey('sk_contrato');
      saldos_rec.definedata('sk_contrato', 'saldo_recuperado');
      saldos_rec.definedone();
      call missing(saldo_recuperado);
    end;
    rc = saldos_rec.find();
    saldo_impagado=sum(saldo_impagado,-saldo_recuperado)
run;

proc sort data=salida;
by sk_contrato descending;
run;