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: passing indefinite no of arguments
From
tashi lama <[email protected]>
To
<[email protected]>
Subject
RE: st: passing indefinite no of arguments
Date
Wed, 4 Apr 2012 19:41:43 +0000
Thank you Nick for your time. I will read this weekend and try again.
----------------------------------------
> Date: Wed, 4 Apr 2012 20:23:02 +0100 > Subject: Re: st: passing indefinite no of arguments > From: njcoxstata@gmail.com > To: statalist@hsphsun2.harvard.edu > > No, sorry, that was quite wrong in part. > > Local macro 0 _is_ defined automatically as all the arguments to a > do-file. However, in this case the two lines > > syntax anything > tokenize `anything' > > don't do anything that can't be done in terms of macros `1' `2' `3' `4' up. > > On Wed, Apr 4, 2012 at 6:54 PM, Nick Cox <njcoxstata@gmail.com> wrote: > > Tashi: > > > > It is best to think that you are addressing Statalist, not any one person. &!
#62; > > > Evidently you have a do-file -file.do- but where it starts and ends is > > not clear from your code fragments below. > > > > Evidently you are using -syntax- in a do-file which is not illegal but > > it is unusual. You need to understand that -syntax- looks inside the > > local macro 0, which apparently you never define. In a program, > > defined by code following a -program- statement, that is done > > automatically. However, `1' `2' etc. are defined in a do-file so your > > misunderstanding does not bite you. That is, the two lines > > > > syntax anything > > tokenize `anything' > > > > do absolutely nothing but that does not invalidate your problem. On > > the other hand, &!
#62; > > > foreach x of ávarlist1 id* &#
123; > > > > is illegal. You are confusing two quite different syntaxes: examples are. > > > > foreach x of local varlist1 { > > > > foreach x of varlist id* { > > > > As I have tried to signal before, I advise against trying to write > > your own ranking code when Stata (and Mata) provide tools for sorting > > and ranking and there are existing programs to be exploited. > > > > Nick > > > > On Wed, Apr 4, 2012 at 4:52 PM, tashi lama <ltashi32@hotmail.com> wrote: > >> Hello Nick, > >> > >> á á á Could you pls look into my code below and tell me where is that I screwed although I feel like the code should work fine, at l!
east in principle. Here is the dataset and the problem is of ranking ignoring few variables. > >> > > > >> date á á á á á hits1 á á hits2 á á hits3 á á áhits4 á hits5 > >> > >> 01jan2010 á á á 3 á á á á á2 á á á á5 á á á á á1 á á á á á5 > >> > >> 02jan2010 á á á 5 á á á á á7 á á á á8 á á á á á4 á á á á á2 > >> > >> 03jan2010 á á á 8 á á á á á6 á á á á2 á á á á á1 á á á á á6 > >> &!
#10;> >> 04jan2010 á á á 6 á á &#
225; á á5 á á á á3 á á á á á2 á á á á á7 > >> > >> 05jan2010 á á á 6 á á á á á4 á á á á2 á á á á á6 á á á á á7 > >> > >> 06jan2010 á á á 1 á á á á á5 á á á á3 á á á á á7 á á á á á8 > >> > >> > >> > >> > >> > >> if "`2'"=="rank" á{ > >> > >> á á á á á á á á á ásyntax anything á á á á á á á á á á!
á á/*allowing any data type to be passed. `3' and `4' are start_date and end_date > >> á á á á á á á á á átokenize `anything' > >> á á á á á á á á á álocal para "`1'" "`2'" "`3'" "`4'" á á á/* breaking arguments into 2 macros `para' and `deselected' and putting first 4 arguments into `para' and rest into `deselcted'. > >> á á á á á á á á á ámacro shift 4 > >> á á á á á á á á á álocal deselected "`*'" > >> á á á á á á á á á á á unab all : hits*!
; > >> á á á á á á
á á á á á local varlist1 : list all - deselected á á á á á á á á /ignore variables from the list > >> á á á á á á á á á á á di "` varlist1'" á á á á á á á á á á á á á á/displays the variables after ignoring. Works until this point. > >> > >> á á á á á á á á á á rename hits* id_* á á á á á á á á á á á á á á á á á á /changing hits1 into id_1 and so on.... > >> á á á á á á á á á á collapse (sum) id* if tin(`3',`4') á á á á á á !
25; á á á á /summing providing date range > >> á á á á á á á á á á local counter 1 > >> á á á á á á á á á á áforeach x of ávarlist1 id* { á á á á á á á á á á á á á á á/comparing and ranking > >> á á á á á á á á á á á á áif `x'!=id_`1' & `x'>id_`1' { > >> á á á á á á á á á á á á á á á á á á á á á álocal á++counter > >> á á á á á á á á á á á á á á á !
25; á á á á á á á á á 
25; á} > >> á á á á á á á á á á á á á á á á á á á á á á á á } > >> á á á á á á á á á á á á á list > >> á á á á á á á á á á á á á di "There are `count' firms in total and I rank `counter' " > >> á á á á á á á á á á exit > >> á á á á á á á á á á á} > >> > >> > >> > >> > >> > >> Questions: > >> > >> 1. When I ran&#!
13; > >> > >> á á á á do file 1 rank 01jan2010 02jan2010 hits3 hits4, there is an error which reads invalid syntax. I am not sure where I screwed. > >> > >> > >> > >> 2. I supplied date range(01jan2010-02jan2010) for collapse sum, but it sums for all the dates (01jan2010-06jan2010). Any idea? > >> > >> 3. when I change the for loop as á á á foreach x of local varlist1 áand run it, I get hits1 not found. So, it is still taking hits1 as the first variable in the varlist1. But I thougnt everything in varlist1 starts with id_ since I renamed them. Could you pls explain? > >> > >> > >> > >> áThank you very much and I really appreciate your time... > >&!
#62; > > * > * For sear
ches 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/