(Apologies for previous incomplete version.)
To elaborate on Martin's comment:
This is nothing to do with -for-. At Eric's request, I won't lecture him
against using -for-. I'll just explain to everyone else that -for- is
outdated, slow, and may bite you, just like a bad-tempered dog in
retirement. Still, you may have good feelings for that dog, remembering
happier days.
Eric's problems would arise with e.g.
replace lbmlifexint1993[_40] = lbmlifexint1993[_41] if
lbmlifexint1993[_41] == .
The underscores don't belong here. (Perhaps Eric is thinking somehow of
_n.)
replace lbmlifexint1993[40] = lbmlifexint1993[41] if lbmlifexint1993[41]
== .
Now see things from Stata's viewpoint. The syntax for -replace- is
replace oldvar =exp [if] [in]
setting aside an option not relevant here.
So nothing can go before the = sign except the name of an existing
variable. Stata gawks at Eric's syntax and its best guess from the [ ]
it sees is that Eric is trying to use weights where they can't be used.
Hence the error message. Stata can't read your mind, so it guesses
according to syntax rules.
Now Eric wants
replace lbmlifexint1993 = lbmlifexint1993[41] in 40 if
lbmlifexint1993[41] == .
or more to the point
replace lbmlifexint1993 = lbmlifexint1993[41] in 40 if
lbmlifexint1993[40] == .
which might as well be
replace lbmlifexint1993 = lbmlifexint1993[41] in 40 if lbmlifexint1993
== .
Nick
[email protected]
Martin Weiss
Try this:
************
sysuse auto, clear
list mpg trunk in 23/24
replace mpg=2 in 23
replace mpg=trunk in 24
list mpg trunk in 23/24
************
Do not try this:
replace mpg[23]=2
Eric Uslaner
I have some historical data with different rows for countries such as
the
Czech Republic and the old Czechoslovakia. I'd like to replace the
missing
values for the Czech Republic with those for the former Czechoslovakia
(yes
I know that there is a Slovakia--but I'll handle that separately). The
row
for the Czech Republic is 40 and for Czechoslovakia is 41. So I tried
to
type:
for var bmginiint1820-lbmlifexint1993: replace X[_40]=X[_41] if
X[_41]==.
(and please don't lecture me on using the "for" command). But I keep
getting the error message:
weights not allowed
r(101);
Can I do this? In the past I have just cut and pasted the data, but I
have
a large number of variables and this could get awkward.
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/