空飛ぶチンアナゴの統計解析日記

統計解析を嗜むチンアナゴのメモ帳です

独自のモジュールを考える(STATA編)

pythonで言うところのimport構文で自作のモジュールを読み込ませたいなというお話

今日のお題

  1. 「こんにちは、〇〇さん(〇〇は任意の名前)」と表示する関数display_helloが記載されているDoFile「display_hello.do」を作成しなさい。
  2. 「display_hello.do」を別のDoFile「Hello_world.do」に読み込ませて、display_helloを用いて「こんにちは、田中さん」と表示させなさい。

とりあえずシンプルにこんな感じでやってみます。

「display_hello.do」モジュールの作成

capture program drop display_hello
program define display_hello
	args name
	display "こんにちは、`name'さん"
	end

シンプルにこんな感じです。
頭の「capture program drop 〜」はお約束のフレーズ。
この関数の場合、被ることはないですが、一応クセとしてつけておくとよいでしょう*1

Hello_world.doの作成

cd "自分の作業フォルダーのパスを入れる"
do "「display_hello.do」のパスを入れる"


* モジュールから読み込んだ関数を実行する
display_hello 田中

ざっくりやるとこんな感じです。
個人的に「do "「display_hello.do」のパスを入れる"」のパスは相対パスで入れるのが好みなのですが、今回は絶対パスでも相対パスでもどちらでもいいです。

実際に保存して実行してみる

問題なくSTATAの画面に

. display_hello 田中
こんにちは、田中さん

と出るはずです。出ない場合はパスが間違っているかタイポしている可能性があるのでもう一度ソースコードを確認してください。

*1:もっとも複数のモジュールを同時に読み込ませたりすることが予想される場合は敢えてこの一文をつけない方が良いかもしれません。関数の命名のかぶりを回避できるので……