データ管理系の新機能
- 既存コマンド merge の構文が刷新されました。より簡便でわかりやすいものとなっています。マージ操作は1:1, 1:m, m:1, m:m のように分類されます。merge 1:1と入力した場合には観測データが1対1に対応することを主張したことになります。merge 1:m は 1:m
のマージを、m:1 は m:1 のマージを、m:m は m:m のマージを意味します。新オプションassert() と keep() を使うと、結果がどうなるべきかと何を保持したいかを指定することができます。例えば
. merge 1:1 subjid using filename, assert(match)
と入力した場合、双方のデータセット中の観測データがすべて互いにマッチすべきことを主張しています。一方、. merge 1:1 subjid using filename, assert(match using) keep(match)
と入力した場合には、観測データはマッチするか、もしくは using データ中のみに存在すべきことを意味し、その場合、マッチのみを保持したいと主張しています。
マスターと using データセットのソートは自動的に行われます。
新しい merge では複数ファイルの1ステップでのマージ機能はドロップされました。先頭の2つのデータセットがマージされ、次にその結果と次のデータセットがマージされます。
1つのデータセット上では変数が文字列で、別のデータセット上では数値だった場合、merge はエラーを発行して処理を中断します(新オプション force が指定されなかった場合を除く)。
従来の merge 構文も引続き使用できます。 - 既存コマンド append にはいくつかの新機能が加わりました:1) メモリ中にデータが存在しなくても動作します。2) 複数のファイルを1ステップで付加できます。3) 新オプション generate(newvar) により、観測データのソースを 0, 1, ... の形で表す変数を生成できます。1つのデータセット上では変数が文字列で、別のデータセット上では数値だった場合、append はエラーを発行して処理を中断します(新オプション force が指定されなかった場合を除く)。
-
Stata
のデフォルトのメモリ割付けが変更されました:
- Stata/SE と Stata/MP の場合、従来の 10M ではなく 50M のメモリがデフォルトで割り当てられます。Stata/IC の場合、それは 1M から 10M に変更されました。
-
Stata/IC の場合の matsize のデフォルトは 200 から 400
に引き上げられました。Stata/SE と Stata/MP の場合のデフォルト値である 400
には変更はありません。Small Stata の場合のデフォルト値は 40 から 100 に変更されました。
- 既存のコマンド order の機能が拡張され、move, aorder の機能が吸収されました。旧コマンド aorder, move は引続き使用できますが、ドキュメントからは削除されています。
- 新コマンド zipfile, unzipfile によりファイルやディレクトリを zip アーカイブ形式で圧縮、解凍できます。
- 新コマンド changeeol により EOL (end-of-line) 形式の変換が行えます。Stata は EOL 形式を問いませんが、エディタやプログラムの中にはそうでないものがあります。
- 新コマンド snapshot によりメモリ上のデータのスナップショットを取ることができます。snapshot は新たなデータエディタでも使用されています。データエディタの特長的機能の一つは対話的に加えられた変更がすべてログとして記録されることです。snapshot はこれらのログ中に記録されます。snapshot は Stata のコマンドであるため、ログの再実行により過去の操作を再現することができます。しかし preserve and restore を使い続けることもできます。
- ログからコマンドをコピー&ペーストすることができます。先頭のピリオドは無視されるので一々削除する必要はありません。
- 既存のコマンド notes にオプション search, replace, renumber が加わりました。
-
値ラベル関連:
- 既存のコマンド label define に replace オプションが追加されました。値ラベルを一旦削除しなくても再定義が行えます。
- 新コマンド label copy によって値ラベルのコピーが行えます。
-
既存のコマンド
label values は varlist
をサポートしました。これによって複数の変数に対して一括した操作が行えます。
- 既存のコマンド expand に generate(newvar) オプションが加わりました。これによって複製された観測値とオリジナルとの区別が容易になります。
-
egen
関連:
- 新関数 rowmedian(varlist) は varlist 中の値の中央値を観測値ごとに算出します。
- 新関数 rowpctile(varlist), p(#) は varlist 中の値の # 番目の行パーセンタイルを観測値ごとに算出します。
- オプション missing の指定された既存関数 mode(varname) は欠損値を一つのカテゴリとして扱います。バージョンが10以前に設定された場合、missing は欠損値をカテゴリとしては扱いません。
-
既存の関数
total(exp) と
rowtotal(varlist) にオプション
missing
が追加されました。ある観測値に対して exp または
varlist
の値がすべて欠損値の場合に、newvar 中の該当観測値は欠損値となります。
- 既存のコマンド copy ではファイル名を2度入力せずともファイルをディレクトリにコピーできるようになりました。
- clear matrix により(Mata 行列と区別した形で)Stata 行列をすべてメモリからクリアできるようになりました。
- 既存のコマンド outfile は日付変数を数値としてではなく文字列としてエクスポートするように改められました。
- 既存のコマンド reshape は long から wide に変換する際に変数ラベルと値ラベルを保持し、wide から long に変換する際にそれらを回復するようになりました。従って i 変数(long 形式中にのみ存在し、wide 形式中には存在しない)に対する値ラベルと変数ラベルは wide から long に戻した際に回復されることになります。xij 変数に対する値ラベルも同様に回復されます。
- 既存のコマンド collapse に新たな統計量 semean, sebinomial, sepoisson が追加され、平均に対する標準誤差が求められるようになりました。
- 既存のコマンド destring にオプション dpcomma が加わりました。これによってコンマを小数点として用いる数値表現への変換が行えます。
- 既存コマンド
odbc 関連:
- odbc insert はより高速なパラメータ化挿入を使用します。
- odbc load と odbc insert 用のダイアログは、Stata セッションに対するデータソースユーザIDとパスワードを保存できるようになりました。
- odbc query は新たなオプション verbose, schema をサポートしました。verbose はすべてのデータソースエイリアス、ニックネーム、タイプ付き表、タイプ付きビューをリストします。これによってこれらのテーブルタイプからのデータのロードが可能になります。schema はデータソースがスキーマ情報を応答する場合に、スキーマ名をテーブル名と共にリストします。
- odbc insert のダイアログは刷新されました。
- 既存のオプション dsn() で最大 499 文字までのデータソースが扱えるようになりました。
- odbc はドライバエラーを直接レポートするようになりました。ODBC ドライバがエラーを発行した場合、従来は odbc から “ODBC error; type set debug on and rerun command to see extended error information” というエラーメッセージが発行されていました。
-
set debug on を指定した場合の
odbc
はセキュリティを考慮し、データソース名、ユーザID、パスワードを表示しなくなりました。
- 新関数 strtoname() は一般的な文字列を Stata の命名規則に合致したものに変換します。また既存の関数 lower(), ltrim(), proper(), reverse(), rtrim(), upper() に対して同義語 strlower(), strltrim(), ..., strupper() が設定されました。どちらも等しく利用できます。
- 新関数 soundex() は与えられた名称に対する soundex コード(1つの文字に3つの数字が続くもの)を応答として返します。新関数 soundex_nara() は名称に対する U.S. Census soundex (soundex と同様の構成であるが、別のアルゴリズムによって生成される)を応答します。
- 双曲線関数用の関数 sinh(), cosh(), asinh(), acosh() がサポートされました。
- 二項分布、超幾何分布、負の二項分布、ポアソン分布用に binomialp(); hypergeometric(), hypergeometricp(); nbinomial(), nbinomialp(), nbinomialtail(); poisson(), poissonp(), poissontail() がサポートされました。
- 新関数 invnbinomial(), invnbinomialtail(), invpoisson(), invpoissontail() は負の二項分布、ポアソン分布用の逆関数を提供します。
- 既存の関数 normal(), lnnormal() のアルゴリズムが改良され、実行時間がそれぞれ 60%, 75% に短縮しました。
-
種々の分布に対応した乱数発生関数 rbeta(),
rbinomial(),
rchi2(),
rgamma(),
rhypergeometric(),
rnbinomial(),
rnormal(),
rpoisson(),
rt()
がサポートされました。
uniform() は runiform() にリネームされました。
すべての乱数発生関数は文字 r で始まります。 - 既存のコマンド drawnorm は新関数 rnormal() を用いて乱数を発生させます。バージョンが10以前にセットされた場合には、drawnorm は invnormal(uniform()) を使用した形に戻ります。
- 既存のコマンド describe は出力を表示する際、Results ウィンドウの幅を尊重するよう改められました。
- 既存のコマンド renpfix は変更された変数のリストを r(varlist) 中に応答します。
- 既存のコマンド impute は依然機能しますが、ドキュメント上からは削除されました。それは新しい多重代入コマンド mi によって置き換えられました。詳細は こちら をクリックください。