web-dev-qa-db-ja.com

Stataのdoファイルでコマンドを複数行に分割します

Stata 12のdoファイルでkeepコマンドを実行したい:

keep a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4

私がしたいことは次のことです:

keep {a1 a2 a3 a4 a5
     b1 b2 b3 b4 b5
     c1 c2 c3 c4}

{}ブラケットではうまくいかないことは知っていますが、それを行うコマンドを探しています。 #delimiter ;を使用しても機能しません。

変数のサブグループはそれらの間の関係を持っているのでこれをやりたいです(ab、およびcを使用して上記のシグナルを送るつもりでした)私のコードでクリア。変数を永続的に追加および削除します。 dropコマンドを使用したくないことに注意してください(この場合、解決策は簡単です)。

9
luchonacho

これは、Robertoによる実際のソリューションを補完する非常に簡単なトリックです。非常に多くの変数があるため、マクロを使用して変数をグループ化することは、特にグループ化を複数回使用できる場合は特に便利です。

loca a a1 a2 a3 a4 a5
loca b b1 b2 b3 b4 b5
loca c c1 c2 c3 c4 c5
keep `a' `b' `c'
2
Aspen Chen

いくつかの方法があります。 1つは///を使用しています。例:

clear all
set more off

*----- example data -----

set obs 1

forvalues i = 1/25 {
    gen var`i' = `i'
}

describe

*----- what you want -----

keep var1 var2 ///
    var3-var7 ///
    var8 var11

describe

#delimitは、正しく使用すると機能します。例:

<snip>

*----- what you want -----

#delimit ;

keep var1 var2 
    var3-var7 
    var8 var11 ;

#delimit cr

describe

さらに別の方法があります。 help delimit(既に知っている)状態:

詳細については、[U] 16.1. doファイルの長い行を参照してください。

手動で入力すると、関連情報が直接表示されます。

この場合、研究/努力の不足が疑われます。 Google検索(「stat + doファイルの改行」)を使用すると、簡単に検索できます。 Stataの問題を解決しようとするとき、これを最初の戦略とすることはお勧めしません。むしろ、Stataリソースから始めましょう:読むことをお勧めします

[U] Stataの学習と使用のためのリソース

[U] 4 Stataのヘルプと検索機能。

19
Roberto Ferrer