Es ist nicht klar, genau das, was Sie wollen, aber alle diese drei Interpretationen sind legal:
clear
set obs 8
global letter "a b c d e f g h"
gen letter1 = "$letter"
gen letter2 = "$letter" in 1
gen letter3 = word("$letter", _n)
list, sep(0)
+---------------------------------------------+
| letter1 letter2 letter3 |
|---------------------------------------------|
1. | a b c d e f g h a b c d e f g h a |
2. | a b c d e f g h b |
3. | a b c d e f g h c |
4. | a b c d e f g h d |
5. | a b c d e f g h e |
6. | a b c d e f g h f |
7. | a b c d e f g h g |
8. | a b c d e f g h h |
+---------------------------------------------+
ohne die Anführungszeichen, Stata werden versuchen, Sinn für a
als Variable oder skalare Namen zu machen und aus der Patsche helfen, wenn das tut nicht arbeiten. Selbst wenn das funktioniert, wird es nicht in der Lage sein, zu verstehen, wie Sie es mit b
kombinieren möchten, und wird dann retten.
Kurz gesagt, müssen Sie normalerweise "" mit literalen Zeichenfolgen umgehen. Die matrix *names
Befehle sind speziell, da ihre Eingaben notwendigerweise Literalstrings sind (auch wenn sie numerische Zeichen sind).
Danke, Nick. Ich war nach dem 3. deiner Interpretationen. Ich war mir des Befehls "world()" nicht bewusst. – StatsScared
OK, aber es ist 'word()' nicht 'world()' und es ist eine Funktion, kein Befehl. –