Bookmark and Share

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]

Re: AW: st: AW: identify all variables with dates


From   Eric Booth <[email protected]>
To   [email protected]
Subject   Re: AW: st: AW: identify all variables with dates
Date   Wed, 3 Mar 2010 16:38:03 -0600

>

As others have mentioned, this is another reason that you should be strategic about naming your variables.   I was curious about what could be done if some of the other string vars in your dataset had a type 10 or if you had one of these date variables where the days or months didn't have the leading zeroes (that is, some of the date variables were all dates like "1/1/2008" while others were "01/01/2008").  To extend Martin's example a bit, here's a clunky way to search for variables which can be formatted as dates, format them, and leave the other string variables alone.  There's likely a better/faster/more efficient way to do this, but here's one way I got it to work:

*****
clear*

inp str10 mydate byte othervar  /* 
*/ str5 otherstring str10 yetanotherdate
"13/12/2007"	01 "hdgs" "13/12/2007"
"14/12/2007"	02 "hdgs" "14/12/2007"
"17/12/2007"	03 "hdgs" "17/12/2007"
"18/12/2007"	04 "hdgs" "18/12/2007"
"19/12/2007"	05 "hdgs" "19/12/2007"
"20/12/2007"	06 "hdgs" "20/12/2007"
"21/12/2007"	07 "hdgs" "21/12/2007"
"27/12/2007"	08 "hdgs" "27/12/2007"
end

***make the "otherstring var 10 characters as well**
replace others = otherstring + "hhhhhh"


ds, has(type 10)
di "`r(varlist)'"

foreach x in `r(varlist)' {
	g `x'1 = date(`x', "DMY")
	cap drop tag
	mark tag
	markout tag `x'1,
	qui sum tag
	if `r(max)'==1 {
		format `x'1 %td
		drop `x' 
		rename `x'1 `x'
		drop tag
	}
	if `r(max)'==0  {
		drop `x'1
		drop tag
		}
	}

*****

~ Eric
__
Eric A. Booth
Public Policy Research Institute
Texas A&M University
[email protected]
Office: +979.845.6754





On Mar 3, 2010, at 3:46 AM, Martin Weiss wrote:

> 
> <> 
> 
> Everything rides on the question: How many other vars are there floating
> around that Stata might mistake for dates, and how do they differ from the
> ones you want? The heuristic could be as easy as searching for strings of
> length 10:
> 
> 
> *************
> clear*
> 
> inp str10 mydate byte othervar  /* 
> */ str5 otherstring str10 yetanotherdate
> "13/12/2007"	01 "hdgs" "13/12/2007"
> "14/12/2007"	02 "hdgs" "14/12/2007"
> "17/12/2007"	03 "hdgs" "17/12/2007"
> "18/12/2007"	04 "hdgs" "18/12/2007"
> "19/12/2007"	05 "hdgs" "19/12/2007"
> "20/12/2007"	06 "hdgs" "20/12/2007"
> "21/12/2007"	07 "hdgs" "21/12/2007"
> "27/12/2007"	08 "hdgs" "27/12/2007"
> "28/12/2007"	09 "hdgs" "28/12/2007"
> "02/01/2008"	10 "hdgs" "02/01/2008"
> "03/01/2008"	11 "hdgs" "03/01/2008"
> "04/01/2008"	12 "hdgs" "04/01/2008"
> "07/01/2008"	13 "hdgs" "07/01/2008"
> "08/01/2008"	14 "hdgs" "08/01/2008"
> "09/01/2008"	15 "hdgs" "09/01/2008"
> end
> 
> ds, has(type 10)
> *************
> 
> 
> 
> HTH
> Martin
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: [email protected]
> [mailto:[email protected]] Im Auftrag von raoul reulen
> Gesendet: Mittwoch, 3. März 2010 10:24
> An: [email protected]
> Betreff: Re: st: AW: identify all variables with dates
> 
> Hi Martin
> 
> Thanks for your suggestions. The problem is indeed like you describe.
> The potential date variables are stored as strings in the following
> format: dd/mm/yyyy. How would I identify such variables? Many thanks
> for your help, it is much appreciated.
> 
> Raoul
> *



*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index