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: st: RE: extract rownames corresponding to data as unique codes
From
Judy You <[email protected]>
To
[email protected]
Subject
Re: st: RE: extract rownames corresponding to data as unique codes
Date
Mon, 8 Aug 2011 09:41:33 +0930
Dear Nick,
Oh thanks, that's it, now it all works. thanks heaps for your
attention and your help. Statalist is indeed great!
Cheers
Judy
2011/8/7 Nick Cox <[email protected]>:
> I have traced my original suggestion of code to 11 July:
>
> <http://www.hsph.harvard.edu/cgi-bin/lwgate/STATALIST/archives/statalist.1107/date/article-409.html>
>
> In that I spell out that Judy's rownames appeared to be all numeric,
> so the initialisation
>
> gen rowname = .
>
> would be fine. But if that is not correct, the variable should clearly
> be created as string.
>
> gen rowname = ""
>
> On Fri, Aug 5, 2011 at 7:40 AM, Nick Cox <[email protected]> wrote:
>> This code initialises -rowname-as numeric, as I pointed out in my last
>> message. I've lost track of whether that was my suggestion, but it remains
>> my best guess at your problem.
>>
>> On 5 Aug 2011, at 01:31, Judy You <[email protected]> wrote:
>>
>>> Nick here is the command i used suggested by you. Thanks for your
>>> patience!
>>>
>>> Cheers
>>>
>>> use data, clear
>>> destring sla,replace
>>> qui dstdize deaths pop sex agegp, by(sla) using (t0)
>>> drop _all
>>> return list
>>> matrix C = r(crude)', r(adj)', r(lb)' , r(ub)'
>>> svmat C, names(col)
>>>
>>> gen rowname = .
>>> qui forval i = 1/95 {
>>> replace rowname = r(c`i') in `i'
>>> }
>>>
>>>
>>> Whether i destring sla or not, it doesn't make any difference. So the
>>> error message happened after forval loope.
>>>
>>> Cheers
>>>
>>> Judy
>>>
>>>
>>>
>>>> ---------- Forwarded message ----------
>>>> From: Nick Cox <[email protected]>
>>>> Date: 2011/8/4
>>>> Subject: Re: st: RE: extract rownames corresponding to data as unique
>>>> codes
>>>> To: "[email protected]" <[email protected]>
>>>>
>>>>
>>>> Thanks, but the problem is inside the -forval- loop and that code is
>>>> (again) not given by you, Perhaps you are trying to put strings
>>>> inside a numeric variable, or vice versa, or something similar. I
>>>> guess that your -rowname- should not be initialised to numeric
>>>> missings.
>>>>
>>>> Nick
>>>>
>>>> On 4 Aug 2011, at 00:36, Judy You <[email protected]> wrote:
>>>>
>>>>> ok, i see.
>>>>>
>>>>> here is the log file with commands and results.
>>>>>
>>>>> Thanks for your attention again!
>>>>>
>>>>> Cheers
>>>>>
>>>>> Judy
>>>>>
>>>>>
>>>>> . use data, clear
>>>>>
>>>>> . destring sla,replace
>>>>> sla has all characters numeric; replaced as int
>>>>>
>>>>> . qui dstdize deaths pop sex agegp, by(sla) using (t0)
>>>>>
>>>>> . drop _all
>>>>>
>>>>> . return list
>>>>>
>>>>> scalars:
>>>>> r(k) = 95
>>>>>
>>>>> macros:
>>>>> r(by) : "sla"
>>>>> r(c95) : "`"5050"'"
>>>>> r(c94) : "`"5000"'"
>>>>> ------
>>>>> r(c4) : "`"207"'"
>>>>> r(c3) : "`"205"'"
>>>>> r(c2) : "`"203"'"
>>>>> r(c1) : "`"201"'"
>>>>>
>>>>> matrices:
>>>>> r(se) : 1 x 95
>>>>> r(ub) : 1 x 95
>>>>> r(lb) : 1 x 95
>>>>> r(adj) : 1 x 95
>>>>> r(crude) : 1 x 95
>>>>> r(Nobs) : 1 x 95
>>>>>
>>>>> . matrix C = r(crude)', r(adj)', r(lb)' , r(ub)'
>>>>>
>>>>> . svmat C, names(col)
>>>>> number of observations will be reset to 95
>>>>> Press any key to continue, or Break to abort
>>>>> obs was 0, now 95
>>>>>
>>>>> .
>>>>> . gen rowname = .
>>>>> (95 missing values generated)
>>>>>
>>>>> . qui forval i = 1/95 {
>>>>> type mismatch
>>>>> r(109);
>>>>>
>>>>> end of do-file
>>>>>
>>>>> r(109);
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2011/8/3 Nick Cox <[email protected]>:
>>>>>>
>>>>>> Sorry, Judy, but this is not what was asked for. To understand an error
>>>>>> message, it helps to see the code, meaning Stata commands, that was
>>>>>> typed.
>>>>>>
>>>>>> Nick
>>>>>>
>>>>>> On 3 Aug 2011, at 01:08, Judy You <[email protected]> wrote:
>>>>>>
>>>>>>> Dear Nick:
>>>>>>>
>>>>>>> Sorry, i have not included the whole list of codes in my first email,
>>>>>>> only with selected codes.
>>>>>>>
>>>>>>> Here are the complete list, and your help is much appreciated indeed.
>>>>>>>
>>>>>>>
>>>>>>> macros:
>>>>>>> r(by) : "sla"
>>>>>>> r(c95) : "`"5050"'"
>>>>>>> r(c94) : "`"5000"'"
>>>>>>> r(c93) : "`"4809"'"
>>>>>>> r(c92) : "`"4700"'"
>>>>>>> r(c91) : "`"4650"'"
>>>>>>> r(c90) : "`"4600"'"
>>>>>>> r(c89) : "`"4409"'"
>>>>>>> r(c88) : "`"4050"'"
>>>>>>> r(c87) : "`"4030"'"
>>>>>>> r(c86) : "`"4020"'"
>>>>>>> r(c85) : "`"4009"'"
>>>>>>> r(c84) : "`"3800"'"
>>>>>>> r(c83) : "`"3650"'"
>>>>>>> r(c82) : "`"3609"'"
>>>>>>> r(c81) : "`"3409"'"
>>>>>>> r(c80) : "`"3309"'"
>>>>>>> r(c79) : "`"3209"'"
>>>>>>> r(c78) : "`"3030"'"
>>>>>>> r(c77) : "`"3009"'"
>>>>>>> r(c76) : "`"2824"'"
>>>>>>> r(c75) : "`"2818"'"
>>>>>>> r(c74) : "`"2814"'"
>>>>>>> r(c73) : "`"2811"'"
>>>>>>> r(c72) : "`"2808"'"
>>>>>>> r(c71) : "`"2806"'"
>>>>>>> r(c70) : "`"2804"'"
>>>>>>> r(c69) : "`"2802"'"
>>>>>>> r(c68) : "`"2530"'"
>>>>>>> r(c67) : "`"2500"'"
>>>>>>> r(c66) : "`"2409"'"
>>>>>>> r(c65) : "`"2380"'"
>>>>>>> r(c64) : "`"2360"'"
>>>>>>> r(c63) : "`"2340"'"
>>>>>>> r(c62) : "`"2320"'"
>>>>>>> r(c61) : "`"2308"'"
>>>>>>> r(c60) : "`"2304"'"
>>>>>>> r(c59) : "`"2270"'"
>>>>>>> r(c58) : "`"2240"'"
>>>>>>> r(c57) : "`"2200"'"
>>>>>>> r(c56) : "`"2100"'"
>>>>>>> r(c55) : "`"2000"'"
>>>>>>> r(c54) : "`"1909"'"
>>>>>>> r(c53) : "`"1809"'"
>>>>>>> r(c52) : "`"1609"'"
>>>>>>> r(c51) : "`"1409"'"
>>>>>>> r(c50) : "`"1350"'"
>>>>>>> r(c49) : "`"1209"'"
>>>>>>> r(c48) : "`"1169"'"
>>>>>>> r(c47) : "`"1138"'"
>>>>>>> r(c46) : "`"1134"'"
>>>>>>> r(c45) : "`"1128"'"
>>>>>>> r(c44) : "`"1124"'"
>>>>>>> r(c43) : "`"1118"'"
>>>>>>> r(c42) : "`"1114"'"
>>>>>>> r(c41) : "`"1108"'"
>>>>>>> r(c40) : "`"1104"'"
>>>>>>> r(c39) : "`"1098"'"
>>>>>>> r(c38) : "`"1094"'"
>>>>>>> r(c37) : "`"1088"'"
>>>>>>> r(c36) : "`"1084"'"
>>>>>>> r(c35) : "`"1078"'"
>>>>>>> r(c34) : "`"1074"'"
>>>>>>> r(c33) : "`"1068"'"
>>>>>>> r(c32) : "`"1064"'"
>>>>>>> r(c31) : "`"1058"'"
>>>>>>> r(c30) : "`"1054"'"
>>>>>>> r(c29) : "`"1052"'"
>>>>>>> r(c28) : "`"1048"'"
>>>>>>> r(c27) : "`"1044"'"
>>>>>>> r(c26) : "`"1038"'"
>>>>>>> r(c25) : "`"1034"'"
>>>>>>> r(c24) : "`"1028"'"
>>>>>>> r(c23) : "`"1024"'"
>>>>>>> r(c22) : "`"1018"'"
>>>>>>> r(c21) : "`"1014"'"
>>>>>>> r(c20) : "`"1011"'"
>>>>>>> r(c19) : "`"1008"'"
>>>>>>> r(c18) : "`"1004"'"
>>>>>>> r(c17) : "`"809"'"
>>>>>>> r(c16) : "`"790"'"
>>>>>>> r(c15) : "`"770"'"
>>>>>>> r(c14) : "`"759"'"
>>>>>>> r(c13) : "`"700"'"
>>>>>>> r(c12) : "`"600"'"
>>>>>>> r(c11) : "`"570"'"
>>>>>>> r(c10) : "`"540"'"
>>>>>>> r(c9) : "`"400"'"
>>>>>>> r(c8) : "`"360"'"
>>>>>>> r(c7) : "`"330"'"
>>>>>>> r(c6) : "`"300"'"
>>>>>>> r(c5) : "`"208"'"
>>>>>>> r(c4) : "`"207"'"
>>>>>>> r(c3) : "`"205"'"
>>>>>>> r(c2) : "`"203"'"
>>>>>>> r(c1) : "`"201"'"
>>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Cheers
>>>>>>>
>>>>>>> Judy
>>>>>>> 2011/8/2 Nick Cox <[email protected]>:
>>>>>>>>
>>>>>>>> You don't show the exact code you used to provoke such an error
>>>>>>>> message.
>>>>>>>>
>>>>>>>> Nick
>>>>>>>>
>>>>>>>> On 2 Aug 2011, at 02:12, Judy You <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> Dear Nick,
>>>>>>>>>
>>>>>>>>> i have tried your command, it gives me error message.
>>>>>>>>>
>>>>>>>>> matrices:
>>>>>>>>> r(se) : 1 x 95
>>>>>>>>> r(ub) : 1 x 95
>>>>>>>>> r(lb) : 1 x 95
>>>>>>>>> r(adj) : 1 x 95
>>>>>>>>> r(crude) : 1 x 95
>>>>>>>>> r(Nobs) : 1 x 95
>>>>>>>>> number of observations will be reset to 95
>>>>>>>>> Press any key to continue, or Break to abort
>>>>>>>>> obs was 0, now 95
>>>>>>>>> (95 missing values generated)
>>>>>>>>> type mismatch
>>>>>>>>> r(109);
>>>>>>>>>
>>>>>>>>> end of do-file
>>>>>>>>>
>>>>>>>>> r(109);
>>>>>>>>>
>>>>>>>>> What i like to have SLAs (area codes) maintain the original source
>>>>>>>>> (numeric format),eg., sla=201, 203 205 --- 4809, 5000 5050 etc..
>>>>>>>>> instead of 1 to 95.
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>>
>>>>>>>>> Judy
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2011/7/13 Judy You <[email protected]>
>>>>>>>>>>
>>>>>>>>>> Thanks Nick for your promptous response. SLA is an area code. Since
>>>>>>>>>> i
>>>>>>>>>> am away and have no stata program in my hand, i ccouldn't try to
>>>>>>>>>> run
>>>>>>>>>> it now, but i trust it will work fine.
>>>>>>>>>>
>>>>>>>>>> Cheers
>>>>>>>>>>
>>>>>>>>>> Judy
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2011/7/11 Nick Cox <[email protected]>:
>>>>>>>>>>>
>>>>>>>>>>> I don't know what SLAs are.
>>>>>>>>>>>
>>>>>>>>>>> In your case, the row names, originally column names, are
>>>>>>>>>>> apparently
>>>>>>>>>>> all
>>>>>>>>>>> numbers, so you should be able to loop over the names and store
>>>>>>>>>>> them
>>>>>>>>>>> in a
>>>>>>>>>>> variable (_not_ column) something like this:
>>>>>>>>>>>
>>>>>>>>>>> qui dstdize freq pop sex agegp, by(sla) using (t0)
>>>>>>>>>>>
>>>>>>>>>>> drop _all
>>>>>>>>>>> return list
>>>>>>>>>>> matrix C = r(crude)', r(adj)', r(lb)' , r(ub)'
>>>>>>>>>>> svmat C, names(col)
>>>>>>>>>>>
>>>>>>>>>>> gen rowname = .
>>>>>>>>>>> qui forval i = 1/95 {
>>>>>>>>>>> replace rowname = r(c`i') in `i'
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> Nick
>>>>>>>>>>> [email protected]
>>>>>>>>>>>
>>>>>>>>>>> Judy You
>>>>>>>>>>>
>>>>>>>>>>> I am running a "dstdize" age-standardised rate syntax and got a
>>>>>>>>>>> result
>>>>>>>>>>> with Crude and age-adjusted rate, together with lower and upper
>>>>>>>>>>> limit.
>>>>>>>>>>>
>>>>>>>>>>> The age adjusted rate is reported by SLA level (which there are 95
>>>>>>>>>>> rows or records). I have save the matrix in a file but the result
>>>>>>>>>>> doesn't come along with SLA code. I could force it to do by merge
>>>>>>>>>>> the
>>>>>>>>>>> predefined file with sla code to the one saved in the matrix. I
>>>>>>>>>>> believer there should be the smart way to do.
>>>>>>>>>>>
>>>>>>>>>>> Here is my log file. Thanks for your help in advance!
>>>>>>>>>>>
>>>>>>>>>>> ----------
>>>>>>>>>>>
>>>>>>>>>>> . qui dstdize freq pop sex agegp, by(sla) using (t0)
>>>>>>>>>>>
>>>>>>>>>>> . drop _all
>>>>>>>>>>>
>>>>>>>>>>> . return list
>>>>>>>>>>>
>>>>>>>>>>> scalars:
>>>>>>>>>>> r(k) = 95
>>>>>>>>>>>
>>>>>>>>>>> macros:
>>>>>>>>>>> r(by) : "sla"
>>>>>>>>>>> r(c95) : "`"5050"'"
>>>>>>>>>>> r(c94) : "`"5000"'"
>>>>>>>>>>> r(c93) : "`"4809"'"
>>>>>>>>>>> ------
>>>>>>>>>>> r(c3) : "`"205"'"
>>>>>>>>>>> r(c2) : "`"203"'"
>>>>>>>>>>> r(c1) : "`"201"'"
>>>>>>>>>>>
>>>>>>>>>>> matrices:
>>>>>>>>>>> r(se) : 1 x 95
>>>>>>>>>>> r(ub) : 1 x 95
>>>>>>>>>>> r(lb) : 1 x 95
>>>>>>>>>>> r(adj) : 1 x 95
>>>>>>>>>>> r(crude) : 1 x 95
>>>>>>>>>>> r(Nobs) : 1 x 95
>>>>>>>>>>>
>>>>>>>>>>> . matrix C = r(crude)', r(adj)', r(lb)' , r(ub)'
>>>>>>>>>>>
>>>>>>>>>>> . svmat C, names(col)
>>>>>>>>>>> number of observations will be reset to 95 Press any key to
>>>>>>>>>>> continue,
>>>>>>>>>>> or Break to abort obs was 0, now 95
>>>>>>>>>>>
>>>>>>>>>>> . save t1,replace
>>>>>>>>>>> file t1.dta saved
>>>>>>>>>>>
>>>>>>>>>>> Crude Adjusted Left Right
>>>>>>>>>>> .0144418 .0213993 .0160632 .0267354
>>>>>>>>>>> .0242798 .0409689 .030746 .0511917
>>>>>>>>>>> .0123417 .0186174 .0149574 .0222773
>>>>>>>>>>> .0097357 .0142612 .0108197 .0177028
>>>>>>>>>>> .0260393 .051086 .0389991 .0631729
>>>>>>>>>>>
>>>>>>>>>>> -----
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> The saved file looks like that, but what I like is to have a
>>>>>>>>>>> column
>>>>>>>>>>> named as SLA, corresponding to the SLA codes in the original data.
>>>>>>>>>>> Could any expert give me some hint?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>> *
>>>>>> * 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/
>>>>
>>>
>>> *
>>> * 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/