Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Judy You <joodyu@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
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 <njcoxstata@gmail.com>: > 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 <njcoxstata@gmail.com> 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 <joodyu@gmail.com> 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 <njcoxstata@gmail.com> >>>> Date: 2011/8/4 >>>> Subject: Re: st: RE: extract rownames corresponding to data as unique >>>> codes >>>> To: "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> >>>> >>>> >>>> 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 <joodyu@gmail.com> 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 <njcoxstata@gmail.com>: >>>>>> >>>>>> 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 <joodyu@gmail.com> 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 <njcoxstata@gmail.com>: >>>>>>>> >>>>>>>> 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 <joodyu@gmail.com> 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 <joodyu@gmail.com> >>>>>>>>>> >>>>>>>>>> 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 <n.j.cox@durham.ac.uk>: >>>>>>>>>>> >>>>>>>>>>> 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 >>>>>>>>>>> n.j.cox@durham.ac.uk >>>>>>>>>>> >>>>>>>>>>> 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/