Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Nick Cox <[email protected]> |

To |
"[email protected]" <[email protected]> |

Subject |
Re: st: Replacing observations with values from other observations |

Date |
Mon, 3 Jun 2013 14:57:45 +0100 |

Stata does not have a simple syntax for what you seem to want. The point is made by considering su y if obsID==374474 Your intention is, I guess wildly, that precisely one observation satisfies the -if- qualifier, so that by extension gen z = y if obsID ==374474 in 42 would look up the value of -y- if obsID == 374474 and then plug it into -z- in observation 42. But that is not how Stata works. 1. That would make -if- behave differently from -in-. 2. In any case, how -if- works is already pre-defined. 3. Syntax and semantics collide here. What would such an expression mean if zero observations satisfied the -if-, or multiple observations? It's not out of the question absolutely to start erecting extra syntax or extra rules here, but I think they would prove highly confusing. The best Stata can do for you is something like su y if obsid == 374474 if r(N) == 1 { replace z = r(min) in 42 } where I added an explicit check on uniqueness. See also for related discussion SJ-6-4 dm0025 . . . . . . . . . . Stata tip 36: Which observations? Erratum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox Q4/06 SJ 6(4):596 (no commands) correction of example code for Stata tip 36 SJ-6-3 dm0025 . . . . . . . . . . . . . . Stata tip 36: Which observations? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox Q3/06 SJ 6(3):430--432 (no commands) tip for identifying which observations satisfy some specified condition http://www.stata-journal.com/sjpdf.html?articlenum=dm0025 Nick [email protected] On 3 June 2013 14:26, Pounds, Moses A. <[email protected]> wrote: Thanks Ryan! Using observation numbers in brackets mostly gets the job done. Unfortunately, there is not a one-to-one correspondence between my obsID variable and Stata's own observation numbers. Accordingly it would make my code easier to write (and for others to later read) if there were some way of using an expression identifying the observation number by criteria (e.g. "if obsID==374474"), in place of Stata's observation number. Does anyone know of a way of doing that? Ryan Stevens > To reference observations in Stata you use [#] after your variable, so observation number 6 for var1 can be accessed as var1[6]. Now you have to remember your obsID variable and the observation number according to Stata may be different. So your code could look like: > > replace var1 = var1[6] if obsID==5 > > This replaces the var1 with the value of var1 at Stata observation 6 if obsID==5. Now this could all be simplified if obsID matches Stata's observation numbers. If there is a one-to-one mapping of obsID to Stata's observation numbering you can do this as > > replace var1 = var1[6] in 5 > > This replaces the value of observation 6 at observation 5. On Fri, May 31, 2013 at 4:31 PM, Pounds, Moses A. >> I would like to replace specific observations with values from other >> observations. I can use >> >> replace var1 = 500 if obsID==5 >> >> to replace the value for variable 1 in the observation with ID number >> 5, with the quantity 500. What I would like is code that allows me to >> make a reference to another observation, in place of that "500." Does >> anyone have a way to do this? (My option of last resort is to do this >> in Excel, but I would prefer to keep working in Stata.) * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/

**References**:**RE: st: Replacing observations with values from other observations***From:*"Pounds, Moses A." <[email protected]>

- Prev by Date:
**RE: st: Replacing observations with values from other observations** - Next by Date:
**st: Postlist for bootstrap** - Previous by thread:
**RE: st: Replacing observations with values from other observations** - Next by thread:
**st: Postlist for bootstrap** - Index(es):