問題タブ [stata]
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.
r - Rのベクトルから可能なすべてのタプルを選択します
私はRでプログラムを作成しようとしています。このプログラムは、ベクトルが与えられると、そのベクトルから要素のすべての可能なタプルを返します。
例:tuples(c('a'、'b'、'c'))= c('a'、'b'、'c'); タクシー'); c('a'、'c')、c('b'、'c'); c('a'); c('b'); c('c')
ベクトルのリストを返す必要があると思います。
参考までに、Stataで同様の機能を実行するプログラムを次に示します。
r - 複数の変数と時不変を使用して、データフレームをワイドからパネルに再形成します
これは、Stataが1つのステップで処理するデータ分析の基本的な問題です。
2000年と2005年の時不変データ(x0)と時不変データ(x1、x2)を使用してワイドデータフレームを作成します。
st
パネルのように形を整えて、データが次のようになるようにします。
私はreshape
stでこれを行うことができます
私の主な懸念は、数十の変数がある場合、上記のコマンドが非常に長くなることです。1stata
つは単に入力します:
Rにそのような単純な解決策はありますか?
r - Rで複数の種類の欠損を処理するにはどうすればよいですか?
多くの調査には、さまざまな種類の欠落のコードがあります。たとえば、コードブックは次のことを示している可能性があります。
0-99 データ
-1 質問なし
-5 わからない
-7 応答を拒否
-9 モジュールは質問されていません
Stata には、ジェネリックを割り当てることができるという点で、これらの複数の種類の欠落を処理するための優れた機能があります。欠落しているデータに適用されますが、より具体的な種類の欠落 (.a、.b、.c、...、.z) も許可されます。欠落を調べるすべてのコマンドは、指定されたすべての欠落エントリの回答を報告しますが、後でさまざまな種類の欠落を整理することもできます。これは、回答を拒否することが、質問されない質問とは異なる代入戦略への影響をもたらすと考えられる場合に特に役立ちます。
R でそのような機能に出くわしたことはありませんが、この機能が本当に欲しいです。いくつかの異なるタイプの NA をマークする方法はありますか? より多くのデータ (欠損の種類を含む長さ nrow(my.data.frame) のベクトル、またはどの行にどの種類の欠損があるかのよりコンパクトなインデックス) を作成することは想像できますが、それはかなり扱いにくいようです。
r - 結果をStataと比較するRでの周波数重み付け
ミネソタ大学のIPUMSデータセットから、1990年の米国国勢調査のデータを分析しようとしていR
ます。データが重み付けsurvey
されているため、パッケージを使用しています。世帯データを取得するだけで(そして、物事を単純にするために個人変数を無視して)、(世帯収入)の平均を計算しようとしています。これを行うために、次のコードを持つ関数を使用して調査デザインオブジェクトを作成しました。hhincome
svydesign()
ここまでは順調ですね。ただし、(同じデータセットの異なる部分を対象としたコードをStata
使用して)で同じ計算を実行しようとすると、異なる標準エラーが発生します。
そして、の作者であるこの猫の皮を剥ぐ別の方法を見ると、survey
周波数の重み付けについて次のような提案があります。
ただし、このコードを機能させることができないようです。
私はそれを修正できないようです。これは、この問題に関連している可能性があります。
つまり、要約すると:
Stata
とで同じ答えが得られないのはなぜR
ですか?- どちらが正しいですか(またはどちらの場合も私は何か間違ったことをしていますか)?
- ソリューションが機能していると仮定すると
rep()
、それはの結果を複製しStata
ますか? - それを行う正しい方法は何ですか?(など)で
plyr
実装された関数に限定されるのではなく、答えが任意の計算を行うためにパッケージを使用することを可能にする場合は称賛に値しますsurvey
svymean()
svyglm()
アップデート
したがって、こことIPUMSから電子メールで受け取った優れたヘルプの後、次のコードを使用して、調査の重み付けを適切に処理しています。将来誰かがこの問題を抱える場合に備えて、ここで説明します。
最初のStataの準備
IPUMSは現在、データをにインポートするためのスクリプトを公開していないため、、、、またはからR
開始する必要があります。とりあえず固執します。IPUMSからインポートスクリプトを実行することから始めます。次に、続行する前に、次の変数を追加します。Stata
SAS
SPSS
Stata
これにより、フォーム240001ごとに一意の整数が作成されますPUMA
。最初の2桁は州のfipコード(メリーランド州の場合は24)で、最後の4桁は州PUMA
ごとに一意のIDです。使用するR
場合は、これを実行することも役立つ場合があります
.dta
これにより、ファイルをインポートしR
てラベルを適用し、基になる整数が失われるため、ラベルなしで追加の変数が作成されます。
スタタとsvyset
キースが説明したように、調査のサンプリングはStata
を呼び出すことによって処理されsvyset
ます。
個人レベルの分析には、現在次のものを使用しています。
これにより、重みがに設定されperwt
、階層化が上記で作成した変数に設定され、世帯serial
番号を使用してクラスタリングが考慮されます。複数年使用している場合は、試してみることをお勧めします
縦方向のクラスタリングも説明します。
世帯レベルの分析(年なし)の場合:
自明である必要があります(この場合、シリアルは実際には不要だと思いますが)。に置き換えるserial
とyearserial
、時系列が考慮されます。
でそれを行うR
.dta
上で説明した追加の変数を含むファイルをインポートstrata
し、個々の文字で分析していると仮定します。
または世帯レベルで:
誰かがこれがお役に立てば幸いです。IPUMSのDwin、Keith、Brandonに感謝します。
sql - R の `if (nbins > .Machine$integer.max) のエラー` を回避する
これは、アンケートの重み付けをどのように行うかという問題から始まった物語です。これを正しく行っているように見えたので、少し壁にぶつかりました (インポート プロセスの詳細とstrata
変数の由来については、以前の投稿を参照してください)。
tabulate
このエラーは関数から発生しているようです。最初に.Machine$integer.max
そして、それがうまくいかなかったとき、のソースコード全体tabulate
:
どちらも問題を回避しませんでした。これがパッケージを作成した理由の 1 つff
であるようですが、私が心配しているのは、これが .NET で避けられない問題であるということR
です。この投稿は、この問題を回避するパッケージを使用したとしても、一度に 2^31 個の要素しかアクセスできないことを示しているようです。私の希望は、メモリの問題を回避するためにsql
(sqlite
または) を使用することでしたが、残念ながら、それを機能させるにはしばらく時間がかかり、同じ基本的な制限に遭遇するだけです。postgresql
に戻そうとしてStata
も問題は解決しません。の使用方法については以前の投稿を参照してくださいsvyset
。ただし、実行したい計算が原因Stata
でハングします。
より多くのメモリを投入することで問題が解決するかどうかはわかりません。R
私は 16 GB のデスクトップで実行しStata
、現在メモリ割り当てを 2000MB に設定している Windows サーバーを介して使用していますが、理論的にはそれを増やして実験することができました。
つまり、要約すると:
- これはハード制限
R
ですか? sql
私の問題を解決しますかR
?- それを多くの個別のファイルに分割すると、それは修正されますか (多くの作業...)?
- 多くのメモリを投入する
Stata
ことはできますか? - どういうわけか間違ったツリーを真剣に吠えていますか?
r - RとStataのグローバルの危険の例
仲間の学生との最近の会話で、私は定数を保存することを除いてグローバルを避けることを提唱してきました。これは、誰もが独自のコードを記述し、プロジェクトのサイズが小さいという典型的な応用統計タイプのプログラムの一種であるため、雑な習慣によって引き起こされる問題を人々が理解するのは難しい場合があります。
グローバルの回避について話すとき、私はグローバルが問題を引き起こす可能性がある次の理由に焦点を当てていますが、原則(およびあなたが重要だと思うかもしれない他の原則)に沿ってRおよび/またはStataでいくつかの例を示したいと思います)、そして私は信頼できるものを思い付くのに苦労しています。
- 非局所性:グローバルはコードの流れを理解しにくくするため、デバッグが難しくなります
- 暗黙的な結合:グローバルは、コードの離れたセグメント間の複雑な相互作用を可能にすることにより、関数型プログラミングの単純さを破ります
- 名前空間の衝突:一般名(x、iなど)が再利用され、名前空間の衝突が発生します
この質問に対する有用な答えは、グローバルが特定のタイプの問題を引き起こす、再現可能で自己完結型のコードスニペットであり、理想的には、問題が修正された別のコードスニペットを使用します。必要に応じて修正された解を生成できるので、問題の例がより重要です。
関連リンク:
r - Stata の xtpcse - R での書き換え方法
私は現在 R を学んでいます。STATA の予備知識はありません。
Stata で行われた研究を再分析したい (パネル補正標準誤差による xtpcse 線形回帰)。モデルやより詳細なコードを Stata で見つけたり、R でこれを書き直す方法のヒントを見つけることができませんでした。R 用に計量経済学の plm パッケージをインストールしました。
以下に、STATA からの .do ファイルの最初の行をコピーします (かなり読みにくいことに気付きました。.do コンテンツをコピーした txt ファイルへのリンクは次のとおりです: http://dl.dropbox.com/u /4004629/This%20was%20in%20the%20.do%20file.txt )。これをより良い方法で行う方法がわかりません。グーグルでSTATAとRの比較などをしてみましたがうまくいきませんでした。
複製したい研究のすべてのデータは次のとおりです。
https://umdrive.memphis.edu/rblanton/public/ISQ_data
アップデート:
Vincent のコードを試してみました。私は pcse2 と vcovBK コードを試しましたが、どちらも機能しました (vcocBK から得られる相関行列をどうするかはわかりませんが)。
ただし、再分析している論文の回帰係数の推定値を再現するのにまだ問題があります。私はできる限り彼らのレシピに従っています。私が見逃している唯一のステップは、Stata で「自己相関: 一般的な AR(1)」が行われる部分だと思います。私が分析している論文には次のように書かれています。
Rの各パネル内で一次相関を制御するにはどうすればよいですか?
これまでにデータに対して行ったことは次のとおりです。
r - RでStata .DTAファイルの一部のみを読み込む
これに簡単な答えがどこかにある場合は、事前にお詫び申し上げます。そのようなもののように思えますが、SO を検索したり、グーグルで検索したりしても、ヘルプ ファイルで見つけることができないようです。
現在、数GBのデータセットをいくつか扱っています。私がアクセスできるクラスタ ノードの 1 つのメモリに収まるには十分ですが、ロードにはかなりの時間がかかります。このデータを使用した多くのデバッグ/プログラミング アクティビティでは、ファイル全体をロードする必要はありません。コードをテストするためのデータセットを取得するには、最初の数千の観測のみをロードする必要があります。もちろん、ファイル全体を読み込んでサブセット化することもread.dta()
できますが、最初の N 行のみを読み込むように指示する方法があるかどうか疑問に思っていました。もちろん、これははるかに高速です。
.csv のような適切な形式を使用してread.csv()
から の nrows 引数を使用することもできますが、その場合、Stata データセットの因子ラベルが失われます (そして、データにフィードしている他の誰かのコードからかなりの数 GB のデータを再作成する必要があります)。このプロジェクト.したがって、.dta ファイルの直接的な解決策が推奨されます。
r - 奇数の日付形式の解釈/変換に役立ちます
データベースからデータを取得し、Stata.dtaファイルに保存しています。しかし、foreign
パッケージを使用してRに読み込むと、これまでに見たことのない日付形式になります。他のすべての日付は「%m /%d /%Y」であり、正しくインポートされます。
データベースのドキュメントを検索しましたが、「DealActiveDate」の奇数の日付形式についての説明がありません。「facilitystartdate」の日付は「DealActiveDate」に近い必要がありますが、必ずしも同じである必要はありません。これらの2つの列のいくつかの行を次に示します。
「DealActiveDate」をより一般的な日付に変換する方法があれば教えてください。ありがとう!(SOが最高の会場かどうかはわかりませんが、他の選択肢は考えられません!)
programming-languages - 構文のないStataプログラミング言語?
私は最近、手続き型/ OO /機能的なバックグラウンドからStataに参加しましたが、言語の基本的な要素を理解するのに苦労しています。
たとえば、syntax
「プログラムが、標準のStata構文などの文法に従ってユーザーが入力した引数を解釈できるようにする」コマンドがあることを発見しました。これが、一部のコマンドが引数として指定された変数のリストを空白で区切る必要があるのに対し、他のコマンドはコンマ区切りのリストを必要とする理由であると推測します。しかし、(パラメーター)構文が強制されるのではなく、プログラムが独自の構文を定義するという考えは、明らかに奇妙に思えます。
もう1つの非常に興味深い構成は、マクロの定義と展開(`macro'
)の構文、および他の言語で知られているローカル変数の明らかな欠如です。
私のバックグラウンドを持つ人々に言語の基本的な概念を説明する「Java開発者のためのStata」ドキュメントのようなものはありますか?
PS:この質問が不明確に思われる場合はお詫び申し上げます。残念ながら、現時点では、より具体的で明確な質問を作成することはできません:(