web-dev-qa-db-fra.com

Décomposer une commande en plusieurs lignes dans le do-file de Stata

Je veux exécuter la commande keep dans un do-file dans Stata 12:

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

Ce que je veux, c'est faire ce qui suit:

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

Je sais que les crochets {} ne font pas l'affaire, mais je cherche la commande qui le fait. En utilisant #delimiter ; ne fonctionne pas non plus.

Je veux le faire parce que les sous-groupes de variables ont une relation entre eux (que j'avais l'intention de signaler ci-dessus en utilisant a, b et c) et je veux avoir cela clair dans mon code. J'ajoute et supprime définitivement des variables. Notez que je ne veux pas utiliser la commande drop (auquel cas la solution est triviale).

9
luchonacho

C'est juste une astuce très simple pour compléter les vraies solutions de Roberto. Étant donné que vous avez tant de variables, une chose que j'ai parfois trouvée utile est d'utiliser des macros pour regrouper des variables, surtout si vous pouvez utiliser le regroupement à plusieurs reprises.

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

Il y a plusieurs façons. L'un utilise ///. Un exemple:

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 fonctionnera s'il est utilisé correctement. Un exemple:

<snip>

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

#delimit ;

keep var1 var2 
    var3-var7 
    var8 var11 ;

#delimit cr

describe

Il y a encore une autre façon. help delimit (que vous connaissiez déjà) déclare:

Voir [U] 16.1. Longues lignes dans les do-files pour plus d'informations.

Cette entrée manuelle vous dirige directement vers les informations pertinentes.

Je soupçonne un manque de recherche/d'effort dans ce cas. Une recherche Google (avec "stata + lignes de rupture dans les fichiers do") vous aurait facilement amené là-bas. Je ne recommande pas que ce soit votre première stratégie lorsque vous essayez de résoudre des problèmes dans Stata. Commencez plutôt par les ressources Stata: je recommande la lecture

[U] Ressources pour apprendre et utiliser Stata

[U] 4 Aide et fonctions de recherche de Stata.

19
Roberto Ferrer