Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: Remove numbers from variable name


From   Steve Samuels <sjsamuels@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Remove numbers from variable name
Date   Tue, 29 Jun 2010 07:34:59 -0400

di in r regexm("question16haveyouever", "^question[1-9][^1-9].*")

will properly handle the single digit numbers..

Steve

-- 
Steven Samuels
sjsamuels@gmail.com
18 Cantine's Island
Saugerties NY 12477
USA
Voice: 845-246-0774
Fax:    206-202-4783


On Tue, Jun 29, 2010 at 7:22 AM, Martin Weiss <martin.weiss1@gmx.de> wrote:
>
> <>
>
> But careful! A "two-digit- question" would comply with the if-branch in
> Nick`s solution as well. So I am afraid it would not make it to the
> else-branch:
>
> *************
> di in r regexm("question16haveyouever", "^question[1-9].*")
> *************
>
>
>
> HTH
> Martin
>
>
> -----Ursprüngliche Nachricht-----
> Von: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Nick Cox
> Gesendet: Dienstag, 29. Juni 2010 12:30
> An: statalist@hsphsun2.harvard.edu
> Betreff: RE: st: Remove numbers from variable name
>
> In terms of the other question, regular expressions offer one way to
> distinguish one from two digits:
>
> foreach v of var question* {
>        if regexm("`v'", "^question[1-9].*") {
>                local newname = substr("`v'", 10, .)
>                rename `v' `newname'
>        }
>        else if regexm("`v'", "^question[1-9][0-9].*") {
>                local newname = substr("`v'", 11, .)
>                rename `v' `newname'
>        }
>        else di "`v': problematic name"
> }
>
> Nick
> n.j.cox@durham.ac.uk
>
> Martin Weiss
>
> " Does not -subinstr- work for string observation, and not variable
> names?"
>
> -subinstr- substitutes parts of strings within strings. Since a variable
> name is just a string, I can use it for your purposes:
>
> *************
> clear*
> gen question5doyouhave=""
> gen question6areyou=""
>
> foreach var of varlist _all{
>        loc newname = substr(subinstr("`var'","question","",1),2,.)
>        rename `var' `newname'
> }
> *************
>
> For the -varname-s containing two digits, you would have to change the
> code
> to "),3,.)" at the end of the -local- line...
>
> Rasika Raghavan
>
> Richard,
>
> Thanks. It worked out fine. Can you suggest though a way in which I
> don't have to specify the variables? Why I am asking is that, for
> single digit questions it would be predrop(10) and for two digit
> question numbers, it would be predrop(11). While it was easy in my
> case, I can think of situations where this might work out to be
> tedious.
>
> Martin,
>
> The "are you" was a typo. But thanks, I had not realized something
> like -strtoname- existed.
>
> I did not quite follow "For your substitution, look at -subinstr()-.
> Why not put the question in the -var label- or a -note- to the
> variable?"
>
> Does not -subinstr- work for string observation, and not variable names?
>
>
> *
> *   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/
>
>
> *
> *   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/
>

*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index