2019年8月20日火曜日

PROC ODSTEXT入門: リストを入れ子にする




「ITEM ~ ENDステートメント」でリストに対し、、

  • 複数の段落を出力できる
  • 入れ子構造を作れる





1. リスト内に、複数の段落を出力する


構文
ITEM;
    P "テキスト1";
    P "テキスト2";
END;




proc odstext;
   list;
     item "アイス";
     item;
        p "スイカ";
        p "スイカは野菜";
     end;
   end;
run;




2. リストを入れ子にする


構文
ITEM;
    P "項目";
    LIST;
        ITEM "入れ子にする項目1";
        ITEM "入れ子にする項目2";
        ITEM "入れ子にする項目3";
    END;
END;




proc odstext;
  list;
     item "果物";
     item;
        p "野菜";
        list;
           item "きゅうり";
           item "キャベツ";
        end;
     end;
  end;
run;




記事一覧

1. 基本構文
2. リストの入れ子

6 件のコメント:

  1. いつも業務でsasを使用する際に、とても頼りにしています。ありがとうございます!

    ご存じだったらぜひお知恵を借りたいのですが、データセットをcsv出力する際に欠損値の出力を指定することは可能でしょうか。
    今、数値の欠損値は.出力されるものをブランク且つノースペースで吐き出せないか調べております。
    (例 a,.,bでデータレコードを出るところ、a,,bのデータレコードで出力)

    返信削除
    返信
    1. Unknownさん、コメントありがとうございます!

      CSV出力はデータステップでおこなってるでしょうか?
      そうでしたら、fileステートメントにdsdオプションを追加してみてください。

      削除
    2. ありがとうございます、テストをしたところ文字列も数列もきれいにノースペース出力ができました…!
      先輩と一緒にmatsuさんの返信を見て、dsdにそんなオプションあったんだー!と感動しております(T_T)

      今後も更新、楽しみにしています!!

      削除
  2. いつも参考にさせていただいております。
    もしご存知でしたら、グラフで縦軸(y軸)のラベルを縦書きにする方法を教えていただけますか。。何も設定しない状態ですと下から上に横書きになると存じますが、上から下へ縦書きにできる方法があれば教えていただけますと幸いです。

    よろしくお願いいたします!

    返信削除
    返信
    1. 匿名さん、コメントありがとうございます。

      使用されてるのはsgplotでしょうか?
      調べてみたのですが、現状該当しそうなオプションは無いようです。。

      gplotでしたらangleとrotateで調整できます。

      axis1 label=(angle=-90 rotate=90);
      proc gplot data=sashelp.class;
      plot height*weight/ vaxis=axis1;
      run;
      quit;

      削除
  3. 早速、ご回答ありがとうございました。

    gplotだとできるのですね。。
    templateを使用してましたので、再考したいと思います。

    お手数おかけしました。
    今後とも参考にさせていただきます!

    返信削除