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: A Tale of Two Macros: Why are these macros producing different results?
From
William Buchanan <[email protected]>
To
[email protected]
Subject
Re: st: A Tale of Two Macros: Why are these macros producing different results?
Date
Tue, 30 Apr 2013 18:18:58 -0700
You might be able to investigate how things are being processed by using -set trace on-.
On Apr 30, 2013, at 6:13 PM, William Sankey <[email protected]> wrote:
> Thank you for the help, I wonder what the command is processing
> without the commas?
>
> Anyway, I will look to the documentation. Thanks again,
>
> On Tue, Apr 30, 2013 at 7:10 PM, Sergiy Radyakin <[email protected]> wrote:
>> Documentation for inlist says that for strings only 10 arguments are supported.
>> So the following is a problem:
>>
>> . di inlist("208","150","151", "157", "162", "183","191", "196",
>> "197", "198", "199", "200", "208")
>> expression too long
>> r(130);
>>
>> Using spaces instead of commas prevents an error, but does not mean
>> that Stata is working correctly, it merely stops complaining:
>>
>> . di inlist("208","150","151", "157", "162", "183","191", "196", "197"
>> "198" "199" "200" "208")
>> 0
>>
>> Using -destring- on the variable you will get better results on list
>> search of the reals:
>> . di inlist(208, 150, 151, 157, 162, 183, 191, 196, 197, 198, 199, 200, 208)
>> 1
>>
>> Using two lists in the program is an additional source of a potential
>> error. What if you now need to add an additional diagnosis, e.g. 301,
>> or need to change 191 to 192?
>>
>> Best, Sergiy
>>
>>
>>
>>
>> On Tue, Apr 30, 2013 at 5:56 PM, William Buchanan
>> <[email protected]> wrote:
>>> You have statements that are not equivalent. Check the commas in your first statement.
>>>
>>> HTH,
>>> Billy
>>>
>>> Sent from my iPhone
>>>
>>> On Apr 30, 2013, at 14:37, William Sankey <[email protected]> wrote:
>>>
>>>> Good afternoon Statalist,
>>>>
>>>> I have two different macros operating in different parts of my code, I
>>>> developed the first macro some time ago and the second macro recently.
>>>> I believed these two macros would give me the same output, however,
>>>> the first macro is producing far fewer observations than the second.
>>>> It seems that the first is misclassifying observations and though I
>>>> cannot figure out why.
>>>>
>>>> Any help in deciphering what it is about the first macro that would
>>>> produce fewer observations would be much appreciated.
>>>>
>>>> The first macro set:
>>>>
>>>> ***Cancer
>>>>
>>>> local ICD2 "Diagnosis1 Diagnosis2 Diagnosis3 Diagnosis4 Diagnosis5"
>>>> foreach X of varlist `ICD2' {
>>>> replace cancer =1 if inlist(`X',"150","151" "157" "162" "183" "191"
>>>> "196" "197" "198" "199" "200" "208")
>>>> }
>>>>
>>>> local PMT2 "Diagnosis_PMT_A_1 Diagnosis_PMT_A_2 Diagnosis_PMT_B_1
>>>> Diagnosis_PMT_B_2 Diagnosis_PMT_C_1 Diagnosis_PMT_C_2"
>>>>
>>>> foreach X of varlist `PMT2' {
>>>> replace cancer =1 if inlist(`X',"150","151" "157" "162" "183" "191"
>>>> "196" "197" "198" "199" "200" "208")
>>>> }
>>>>
>>>>
>>>> The second macro set:
>>>>
>>>> gen DIAG_1 = Diagnosis1
>>>> gen DIAG_2 = Diagnosis2
>>>> gen DIAG_3 = Diagnosis3
>>>> gen DIAG_4 = Diagnosis4
>>>> gen DIAG_5 = Diagnosis5
>>>>
>>>> gen ALT_A_1 = Diagnosis_PMT_A_1
>>>> gen ALT_A_2 = Diagnosis_PMT_A_2
>>>> gen ALT_B_1 = Diagnosis_PMT_B_1
>>>> gen ALT_B_2 = Diagnosis_PMT_B_2
>>>> gen ALT_C_1 = Diagnosis_PMT_C_1
>>>> gen ALT_C_2 = Diagnosis_PMT_C_2
>>>> ***Cancer
>>>>
>>>> forval j = 1/5 {
>>>> replace cancer=1 ///
>>>> if inlist(DIAG_`j',"150","151", "157", "162", "183","191",
>>>> "196", "197" "198" "199" "200" "208")
>>>> }
>>>>
>>>> local letter "A B C"
>>>> foreach i in `letter' {
>>>> forval e = 1/2 {
>>>> replace cancer=1 ///
>>>> if (inlist(ALT_`i'_`e',"150","151" "157" "162" "183" "191"
>>>> "196" "197" "198" "199" "200" "208")
>>>> }
>>>> }
>>>> }
>>>>
>>>> Thanks,
>>>> Will
>>>>
>>>> --
>>>> William J. Sankey
>>>> Johns Hopkins University
>>>> MA Public Policy '12
>>>> *
>>>> * For searches and help try:
>>>> * http://www.stata.com/help.cgi?search
>>>> * http://www.stata.com/support/faqs/resources/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/faqs/resources/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/faqs/resources/statalist-faq/
>> * http://www.ats.ucla.edu/stat/stata/
>
>
>
> --
> William J. Sankey
> Johns Hopkins University
> MA Public Policy '12
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/