問題タブ [stata-macros]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
loops - ローカル マクロを使用して、共通のプレフィックスを持つ複数の変数を集計する
名前が prefix で始まる変数がいくつかありますindoor
。後にindoor
続くのは数値ではありません (これにより、すべてが単純になります)。
これらの変数ごとに表を作成したいと思います。
私のコードは次のとおりです。
問題は、私が望んでいたようindoor
に、foreach
コマンドが質問indoor*
のリストに解決されずに解決されることです。indoor
このため、tab
コマンドの後に変数が多すぎて (2 つしか処理できません)、エラーが発生します。
簡単な修正は、最初のコマンドを次のように置き換えることです。
しかし、これは避けたいことです。つまり、これらの変数のすべての名前を見つけて、コードに貼り付ける必要があります。これに対するより迅速な修正があるようですが、私は何も考えられません。
python - 変数名をプログラムで作成できる言語の種類は?
この質問は、純粋に知的好奇心から出たものです。
Python のセクションを比較的頻繁に参照していると、これに似た質問がいくつか見られます。このような質問では、グローバル変数をプログラムで定義する方法を誰かが求めています。の落とし穴を知っている人もいれば、知らexec
ない人もいます。
ただし、私は最近、Stata でプログラミングを行っています。ここでは、次のことが一般的です。
Stata の用語では、 という名前のローカル マクロN
が作成され、N
100 に評価されます。foreach
ループの各反復で、 ~ からの値x1
がx100
ローカル マクロ に割り当てられx
ます。次に、ループ内の行はi
、 の展開にの 2 乗を代入します。x
これは、 と同じ末尾を持つローカル マクロi
です。つまり、このループの後、x4
4^2 にx88
展開され、88^2 に展開されます。
Python では、同様のことを行う方法は次のようになります。
次に、squares[7]
7^2 に等しくなります。
これはかなり単純な例です。stata マクロには他にも多くの用途があります。評価する関数を渡す方法としてこれらを使用できます。たとえば、次のようになります。
周りの二重の目盛りは、r
そのマクロを 2 回、最初にr1
/r2
に、次にregress
/に展開し、従属変数および独立変数としてcorr
線形回帰を実行した結果、およびとの間の相関を示します。さらに複雑なものも可能です。y
x
y
x
私の質問は基本的に、変数の割り当て/評価がこの形式の「マクロ割り当て/展開」をとる言語のより大きなカテゴリにstataが分類されますか? 言語がこのように設計される理由の説明、および/または他の言語での同様の構成の例に対するボーナスポイント。
undefined - Stata: ローカル マクロが未定義かどうかを確認する
私は Statado
ファイルを作成していますが、ユーザーがいくつかのパラメーターを指定しない場合にデフォルト値を提供したいと考えています。そのために、マクロが未定義かどうかを確認したいと思います。
これを行うためのハックな方法を思いつきました:
しかし、これを行う慣用的な方法があるかどうか知りたいです。
regression - ダミー変数を持つ Mlogit マクロ
私はStataとマクロは初めてです。
いくつかの変数をループして、コマンドから推定値を生成し、mlogit
それらをデータセットに保存しようとしています。その部分はうまく機能しています。
私が抱えている問題は、ダミー変数に分割する必要があるカテゴリ変数です。
SES
グローバル変数として設定することで、ループはそれを変数の 1 つのセットとして扱うと思っていましたが、間違っていました。コードはすべての変数をループする$SES
ため、各ダミー変数trauma_main
が個別に回帰することになりますが、これは私が望んでいるものではありません。
ダミー変数を 1 つのブロックとして扱うように Stata に「指示」する方法はありますか? さらに、私はできることを知っており、それi.SES
を使用してもうまくいきますが、使用されている参照グループは私が望むものではありません. のような参照グループを設定する方法をグーグルでi.var
検索しましたが、おそらく間違った検索用語を使用しているため、何も役に立ちません。
アドバイスをよろしくお願いします。
マギー
stata - マクロ変数への値の保存
このコマンドを使用してlevelsof
、変数の一意の値を識別し、それらをマクロに貼り付けています。その後、マクロでこれらの値を使用して、ロードする別のデータセットからレコードを選択したいと思います。
私が念頭に置いているのは、次のようなものです。
それは動作しますか?そして、別のより効率的なオプションはありますか?これはRで簡単に行うことができます(ベクトルはマクロよりも操作しやすいため)が、このプロジェクトにはStataが必要です。
明確化:
a
3つの一意の値、、、b
およびを持つ変数がある場合、c
それらをマクロ変数に格納して、後で別のデータセットを取得し、それらの値の1つに一致する観測値を選択できるようにします。
通常、inlist
この関数を使用して手動でこれを行うことができますが、さまざまな値のセットでプログラムを実行できるように、ソフトコーディングしたいと思います。そして、inlist
関数をマクロで動作させることができません。
global-variables - ローカルマクロでdo-fileを使用する
do
ローカルマクロを含むファイルを使用しているときに、Stataで次のエラーが発生します。
出力
これは非常に些細な問題であることは知っていますが、このエラーがどこから来ているのかわかりません。
グローバルマクロを使用してもエラーが発生しなかったことに注意してください。
foreach - 文字列のサフィックスを持つ多くの変数の名前を変更する方法
Stataには、すべてがで始まる一連の変数がありますpkg
。現在の状態では、末尾は数値です:pkg1
、、、pkg2
など。 pkg3
pkg4
これらの変数の末尾をすべて文字列に変更する必要があります:pkgmz
、、、pkggmz
など。pkgsp
pkgsptc
これらの文字列の末尾の列があり、ローカルリストとして指定できます。
例えば:
数字の末尾を文字列の末尾に変更するにはどうすればよいですか?
コードでの私の推測は以下にあり、???
私が困惑している場所を示しています:
コマンドを利用したほうがいいregexr()
のではないかと思いますが、それを含める方法は考えられません。
どんな助けでも大歓迎です。
stata - 長いローカル リストをキャリッジ リターンする方法とリストを 1 回だけ定義する方法
私の最初の質問は単純ですが、どこにも答えが見つからず、気が狂いそうになります。
- リストが非常に長い場合、Stata でローカル リストを定義するとき、どのようにキャリッジ リターンを実行すればよいですか?
二重引用符内では、通常///
は機能しません。
たとえば、これは機能しません。
引用符を削除すると機能しますが、引用符を含める必要があると警告されています。
私の 2 番目の質問は、より深刻な問題です。
- local を定義した
reglist
後、Stata にそれを複数回 (つまり、1 回だけでなく) 使用するために記憶させるにはどうすればよいでしょうか?
例えば:
ここでは、 local を定義してから、このリストを使用してreglist
a を実行し、その他の処理を行います。regression
次に、 local 内のすべての変数の平均を取得したい場合reglist
、Stata はそれを記憶していないため、再度定義する必要があります。これは、リストを定義する目的全体を無効にします。
リストを一度だけ定義して、好きなだけ何度でも呼び出すことができるようにする方法を誰かが教えてくれれば幸いです。
r - Stata のローカルまたはグローバル マクロに相当する R
私は R を学ぼうとしている Stata ユーザーです。
私のStataコードでは、ローカルマクロとして保存した長いフォルダーパスがいくつかあります。分析で使用するために、これらのフォルダーの両方に複数のファイルがあります。
Rでは、フォルダーの1つにあるファイルを参照するたびに作業ディレクトリを変更できますが、それは間違いなく良い方法ではありません。フォルダ パスを文字列として R に保存しても、それらを参照する方法がわかりません。たとえば、Stata では「folder1」を使用します。
R で Stata コードを 1 行ずつ書き直そうとするのは、R を学ぶ最善の方法ではないのではないかと考えています。
誰か助けてくれませんか?
stata - 平均値をローカル マクロに保存し、それを別のファイルに保存する方法は?
Stata ファイルfile1.dta
があり、変数の 1 つがincome
. を計算average_income
し、それをローカル マクロに割り当て、別の Stata ファイルに保存する必要がありますNew.dta
。
do
ファイルで次のことを試しました。
しかし、うまくいきません。