scalar als Schleifenzähler nicht möglich?

Fragen zu Stata Syntax und Do-Files.

scalar als Schleifenzähler nicht möglich?

Beitragvon kerh » Fr 28. Feb 2014, 16:46

Hallo,

folgendes funktioniert:
local n=100
forvalues = 1(1)`n'{
<syntax>
}

folgendes aber nicht:
scalar n=100
forvalues = 1(1)n{
<syntax>
}

Warum lassen sich Skalare nicht als Schleifenzähler verwenden? Oder mache ich etwas falsch?
kerh
 
Beiträge: 3
Registriert: Fr 28. Feb 2014, 16:34
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: scalar als Schleifenzähler nicht möglich?

Beitragvon daniel » Fr 28. Feb 2014, 19:31

Weil das -forvalues- command nicht von sich aus den scalar evaluiert (im Gegensatz zu z.B. -display-).

Code: Alles auswählen
sac n = 100
forv j = 1/`= n' {
     <syntax>
}
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: scalar als Schleifenzähler nicht möglich?

Beitragvon kerh » Mo 3. Mär 2014, 10:33

Das ist aber unpraktisch!!!
Danke für die Antwort!
kerh
 
Beiträge: 3
Registriert: Fr 28. Feb 2014, 16:34
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: scalar als Schleifenzähler nicht möglich?

Beitragvon daniel » Mo 3. Mär 2014, 12:43

Das ist aber unpraktisch!!!


Ganz im Gegenteil. So ist man gezwungen darüber nachzudenken, ob ein (global sichtabrer, 'hard coded') scalar hier wirklich einem -local- vorzuziehen ist. In den allermeisten Fällen ist das -local- die bessere Wahl.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste

cron