問題タブ [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.
stata - Stataで日付を変換する方法は?
以下のような形式の日付があり、Rを使用して文字列から日付に変換します
Stataでやりたいのですが、どうやって?私はStataでこれを試しました:
しかし、それは大丈夫ではありません、それはなぜですか?ありがとう。
stata - Stataの別のadoファイルでadoファイルを実行するには?
R では、次を使用して別の R スクリプトを実行できます。
Stataで同じことを行うにはどうすればよいですか?
stata - Stataの代替IDE
私はR-studioforRに慣れています。これには、を押して入力しようとしている関数を推測するなどの機能がありますTAB。
ただし、Stataの統合開発環境(IDE)が見つかりません。
ありますか?
stata - Stata を使用して集計から Fisher Exact Test を実行する
以下のような一連のデータがあります。
これらは、ABCD が 2x2 テーブルを構成する集計データであり、各行でフィッシャーの正確検定を実行し、その行のフィッシャーの正確検定の p 値の新しい列を追加する必要があります。
and loop を使用fisher.exact
して R で実行できますが、Stata で Fisher の正確なテストのコマンドを見つけることができません。
python - 実行のためにvimから外部アプリケーションにコードを送信する
私は仕事で定期的にstataを使用しています。私が選んだテキストエディタは(g)vimです。ここまたはここで提供されているスクリプトを使用して、vimからstataにコードを送信しています。この機能は非常に実用的であり、事実上、Linuxに完全に切り替えることを妨げる唯一のことです。スクリプトはAutoITで書かれているので、Linuxでは使用できません。それらは基本的にテキストエディタの選択から独立しており、それらを書いた人々はnotepad++を使用しています。
基本的に、これらのスクリプトとvimrcの数行を使用すると、選択範囲またはファイル全体を実行中のstataウィンドウに送信できます(開いているものがない場合は、stataが最初に開始されます)。
Linuxでこれを行うソリューションを探していますが、どこから始めればよいのかわかりません。Linuxには、2つの異なるstataバージョンがあります。コマンドライン用のstataとxstataはGUIバージョンです。残念ながら、コマンドラインバージョンの機能が制限されているため、GUIバージョンを使用する必要があります。そのため、screen/tmuxは除外されます。
これが些細なことであるならば、私はそれを逃して本当に申し訳ありません、そして解決のために非常に感謝するでしょう。また、利用できるvim用の既存のプラグインを見つけることができませんでした。そうでない場合は、時間をかけてソリューションを実装する方法を見つけたいと思います。ただし、正しい方向へのポインタは非常に役立ちます。私はLinuxとプログラミング全般に比較的慣れていませんが、学びたいと思っています。
ツールに関して:bashはわかりませんが、とにかくいつか調べたいものです。私はPythonに少し手を加えたので、それも大丈夫でしょう。このタスクに絶対的に優れているものが他にある場合は、私に知らせてください。
どんな助けでも大歓迎です。AutoITスクリプトはWebサイトでホストされていますが、必要に応じてWindowsのセットアップをここに投稿できます。
編集
さて、コメントでいくつか議論した後、これが私が翻訳する必要のある重要なAutoITスクリプトです。(ただし、システムクリップボードの内容を毎回上書きしないソリューションをお勧めします。)
Edit2これはスクリプトが本質的に行うことだと思います:開いているstataウィンドウをチェックし、それを選択(または実行)し、実行するコンテンツを一時ファイルに貼り付け、stataウィンドウに切り替え、コマンドラインを選択しますctrl-1(およびctrl-aですでに書き込まれている可能性のあるもの)を使用して、コマンドラインに「tempfile」を貼り付け、送信されたコードを実行します。少なくともそれが私がそれを理解する方法です。
最終コメント
私はしばらく前にbashで解決策を考案しましたが、この質問の以前のバージョンへの回答としてここに投稿されています。
r - Stata と R の結果は、2 つのカテゴリカル予測子とそれらの相互作用を使用したロジスティック回帰で一致しませんでした
Stata と R の結果を比較しようとすると混乱します。Web ページhttp://www.ats.ucla.edu/stat/stata/webbooks/logistic/chapter2/default.htmにある例を使用しています。 最初にStataで次のコマンドを実行します
次に、セクションに記載されている次のコマンドを使用します (2.2.2 主な効果と相互作用を伴う 2 x 2 レイアウト)
これら 2 つのコマンドは、Web ページに表示される結果を生成します。
そして、次のRコードを使用して同じ例を再現しました
しかし、結果は一致しません!
R のデータ ファイルは、次のリンクからダウンロードできます。
注: 主効果のみのモデルの結果は一致しますが、交互作用を含めると一致しません。
前もって感謝します。
netcat - 圧縮ファイルから Stata バイナリ形式を読み取る方法
Stata ナレッジ ベースには、パイプからの ASCII データの読み取りに関するメモが含まれています。これにより、圧縮解除されたバージョンをディスクに保存せずにファイルを読み取ることができます。そこに示されている方法で成功したことはありません。常にエラー メッセージが表示されます
mypipe.pip: not found
。非常によく圧縮されるテラバイトのデータがあるため、これは常に失望でした. それが他の人にとってもうまくいくかどうか聞いてみたいと思います.
これを調査しているうちに、はるかに優れていると思われる回避策が見つかりました。ナレッジ ベースの提案とは異なり、ASCII ファイルに加えて .dta ファイルでも機能します。これは私たちにとって非常に興味深いものです。これは、
use
コマンドの http オプションで実行されます。
私たちの最初の試みは、ファイル test.cgi を webserverscgi-bin
ディレクトリに追加することでした:
そして、私たちはそれを見つけます
は Stata から動作しますが、ファイルが LAN を何度も巡回するため、多くのオーバーヘッドが発生するため、URL からファイル名を取得するなど、これを実用的にすることは追求していません。
私たちは、実際の Web サーバーやルート権限さえも必要としない代替手段を開発しています。これは、ほとんどの Linux ディストリビューションに同梱されており、Windows でも使用できる nc コマンドで実行されます。Stata プロンプトで複合コマンドを実行します。
このコマンドは、ヘッダーと圧縮解除されたファイルを、ポート 8080 から読み取る最初のプロセスに送信するようにコンピューターをセットアップします。このコマンドは、正確な Stata リクエストを表示するときに、そのポートからファイルが読み取られるまで戻りません。& のため、nc が待機している間も Stata が続行されます。それで
use
コマンドは一部のホスト名を受け入れないため、127.0.0.1 の代わりに「localhost」を使用できないことに注意してください。
マシンに nc がない場合は、ncat、netcat、または socat を探します。一部のバージョンでは、ポート番号の前に「-p」が必要です。nc は Windows マシンにインストールでき、同じことができるはずですが、まだ試していません。
これは、ASCII ファイル、暗号化されたファイル、分割ファイル、およびその他のタイプにも使用できます。Stat/Transfer だけが標準出力に書き込むとしたら!
セキュリティ上の問題があります.Unix許可ビットの読み取り制限を放棄します. また、圧縮されていないファイルをディスクから読み取るよりも遅くなりますが、それでも十分な速さです。
これを ado ファイルにパッケージ化しようと試みましたが、あまり成功していません。ユーザー フレンドリーな ado プログラムは、利用可能なポートを自分で見つける必要があり、これを行う良い方法はまだ見当たらず、通信する必要があるためです。 use コマンドに戻りますが、これについても途方に暮れています。リストの誰かが方法を提案するように促されるか、Statacorp が使用コマンドに解凍を組み込むだけになることを望んでいました。
ダニエル・フィーンバーグ feenberg@nber.org
mysql - Stata で (MySQL から) group by ステートメントを作成するには?
私は統計の専門家ではありませんが、かなりの量のデータを処理する必要があります。ほとんどの場合、これらのデータ セットはオンライン調査から得られます。したがって、私は MySQL データベースを持っており、そこから結果を得る方法を知っています。
しかし、Stata ファイルを取得したので、分析を行う必要があります。MySQL ではそれを行う方法を知っていますが、Stata で行き詰まっており、あなたの助けを求めています。
次の列を含む小さすぎないテーブル(約50k行)があります(さらに列がありますが、これらは私が使用する必要がある列です):
id - オブジェクト ID、一意の値
name - オブジェクトの名前、文字列値
class - オブジェクトのクラス、整数範囲 1 から 6
origin - オブジェクトの原点、整数範囲 1 - 2
50,000 行の中には、約 7,000 の異なる名前しかありません。Stata では、 を使用してすべての名前を取得list name
でき、list name if class == 2
.
ここで、すべての異なる名前のリストと、その名前を持つオブジェクトの数が必要で、リストを count で並べ替えます。MySQL では、クエリを実行しますSELECT name, COUNT(*) AS cnt FROM objects GROUP BY name ORDER BY cnt DESC
。しかし、それは Stata ではどのように行われるのでしょうか?
次のステップは、各クラスまたは両方のオリジンのリストを取得することです。つまりSELECT name, COUNT(*) AS cnt FROM objects WHERE class = 2 GROUP BY name ORDER BY cnt DESC
、それは Stata でも可能ですか?
ps: Stata は実際にはプログラミング言語ではないため、stackoverflow が適切な場所かどうかはわかりません。しかし、ここでいくつかの Stata 関連の質問を見つけました。それが私がここに投稿した理由です。より良い場所がある場合は、適切な場所を教えてください。
r - R と Stata のマージ コマンドの比較
Rユーザーとして、私は現在このリソースを使用してStataを学んでおり、コマンドについて戸惑っていmerge
ます。
R では、とにかくすべてをマージするので、データを間違ってマージすることを心配する必要はありません。Y
データフレームはデータフレーム内の複製された各行にマージされるため、共通の列に重複が含まれていても心配する必要はありませんX
。(all=FALSE
で使用merge
)
X
しかし、Stata の場合、マージに進む前に重複行を削除する必要があります。
merge
続行するには、マスターテーブルの共通列が一意である必要があるとStataで想定されていますか?
sql - SQL GROUP BY のように、2 つ以上の変数を使用して Stata でグループ化する
SQL では、複数の変数でグループ化できます。
得られるのは、b のレベルが a のレベルにネストされたテーブルです。
これはどのように Stata a) で実行できますか? Windows で出力しますか? b) ファイルとして保存されますか?