File indexing completed on 2025-02-02 03:54:44
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>highlight.do</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Stata) - Theme (Breeze Light)"/> 0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre> 0007 <span style="color:#898887">/* Test file for kate's stata syntax highlighting</span> 0008 <span style="color:#898887">*/</span> 0009 *! <span style="font-weight:bold">version</span> 1.2.0 2mar2003 E. Leuven 0010 <span style="font-weight:bold">program</span> <span style="font-weight:bold">define</span> spellsplit 0011 <span style="font-weight:bold">version</span> 7 0012 <span style="font-weight:bold">syntax</span> [anything], spell(<span style="font-weight:bold">varlist</span> <span style="color:#644a9b">min</span>=2 <span style="color:#644a9b">max</span>=2) [ <span style="font-weight:bold">by</span>(<span style="font-weight:bold">varlist</span>)] 0013 <span style="font-weight:bold">tokenize</span> <span style="color:#006e28">`spell'</span> 0014 <span style="font-weight:bold">local</span> date0 <span style="color:#006e28">`1'</span> 0015 <span style="font-weight:bold">local</span> date1 <span style="color:#006e28">`2'</span> 0016 <span style="font-weight:bold">local</span> f0 : <span style="font-weight:bold">format</span> <span style="color:#006e28">`date0'</span> 0017 <span style="font-weight:bold">local</span> f1 : <span style="font-weight:bold">format</span> <span style="color:#006e28">`date1'</span> 0018 0019 <span style="color:#898887">/* set default statistic */</span> 0020 <span style="font-weight:bold">local</span> current <span style="color:#bf0303">"mean"</span> 0021 0022 gettoken left anything : anything, <span style="color:#644a9b">match</span>(prns) 0023 <span style="font-weight:bold">while</span> <span style="color:#bf0303">"`left'"</span>!=<span style="color:#bf0303">""</span> { 0024 <span style="font-weight:bold">if</span> <span style="color:#bf0303">"`prns'"</span>!=<span style="color:#bf0303">""</span> { 0025 <span style="font-weight:bold">if</span> !<span style="color:#644a9b">inlist</span>(<span style="color:#bf0303">"`left'"</span>,<span style="color:#bf0303">"mean"</span>,<span style="color:#bf0303">"sum"</span>) { 0026 <span style="font-weight:bold">di</span> <span style="font-weight:bold">as</span> <span style="font-weight:bold">error</span> <span style="color:#bf0303">"Statistic `left' not supported"</span> 0027 <span style="font-weight:bold">exit</span> 198 0028 } 0029 <span style="font-weight:bold">local</span> current <span style="color:#bf0303">"`left'"</span> 0030 } 0031 <span style="font-weight:bold">else</span> { 0032 <span style="font-weight:bold">local</span> <span style="color:#006e28">`current'</span>vars <span style="color:#006e28">``current'</span>vars' <span style="color:#006e28">`left'</span> 0033 } 0034 gettoken left anything : anything, <span style="color:#644a9b">match</span>(prns) 0035 } 0036 <span style="font-weight:bold">if</span> (<span style="color:#bf0303">"`meanvars'"</span>!=<span style="color:#bf0303">""</span>) { 0037 <span style="font-weight:bold">confirm</span> <span style="font-weight:bold">var</span> <span style="color:#006e28">`meanvars'</span> 0038 <span style="font-weight:bold">unab</span> meanvars : <span style="color:#006e28">`meanvars'</span> 0039 } 0040 <span style="font-weight:bold">if</span> (<span style="color:#bf0303">"`sumvars'"</span>!=<span style="color:#bf0303">""</span>) { 0041 <span style="font-weight:bold">confirm</span> <span style="font-weight:bold">var</span> <span style="color:#006e28">`sumvars'</span> 0042 <span style="font-weight:bold">unab</span> sumvars : <span style="color:#006e28">`sumvars'</span> 0043 } 0044 0045 <span style="font-weight:bold">quietly</span> { 0046 g _count = 1 0047 <span style="font-weight:bold">local</span> xvars <span style="color:#006e28">`meanvars'</span> <span style="color:#006e28">`sumvars'</span> _count 0048 0049 <span style="color:#898887">/* create dummy by-var if no by option is specified */</span> 0050 <span style="font-weight:bold">if</span> <span style="color:#bf0303">"`by'"</span>==<span style="color:#bf0303">""</span> { 0051 <span style="font-weight:bold">tempvar</span> <span style="font-weight:bold">by</span> 0052 g <span style="font-weight:bold">byte</span> <span style="color:#006e28">`by'</span> = 1 0053 } 0054 <span style="font-weight:bold">tempvar</span> <span style="color:#006e28">`xvars'</span> <span style="color:#006e28">`by'</span> 0055 0056 <span style="color:#898887">/* create negative for subtraction when spell ends */</span> 0057 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`xvars'</span> { 0058 g <span style="font-weight:bold">double</span> <span style="color:#006e28">``v'</span>' = -<span style="color:#006e28">`v'</span> 0059 <span style="font-weight:bold">local</span> txvars <span style="color:#006e28">`txvars'</span> <span style="color:#006e28">``v'</span>' 0060 } 0061 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`by'</span> { 0062 g <span style="font-weight:bold">double</span> <span style="color:#006e28">``v'</span>' = <span style="color:#006e28">`v'</span> 0063 <span style="font-weight:bold">local</span> txvars <span style="color:#006e28">`txvars'</span> <span style="color:#006e28">``v'</span>' 0064 } 0065 0066 <span style="font-weight:bold">stack</span> <span style="color:#006e28">`date0'</span> <span style="color:#006e28">`xvars'</span> <span style="color:#006e28">`by'</span> <span style="color:#006e28">`date1'</span> <span style="color:#006e28">`txvars'</span>, into(<span style="color:#006e28">`date0'</span> <span style="color:#006e28">`xvars'</span> <span style="color:#006e28">`by'</span>) <span style="font-weight:bold">clear</span> 0067 0068 <span style="color:#898887">/* calculate totals per date */</span> 0069 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`xvars'</span> { 0070 <span style="font-weight:bold">egen</span> <span style="font-weight:bold">double</span> <span style="color:#006e28">``v'</span>' = <span style="font-weight:bold">sum</span>(<span style="color:#006e28">`v'</span>), <span style="font-weight:bold">by</span>(<span style="color:#006e28">`by'</span> <span style="color:#006e28">`date0'</span>) 0071 } 0072 0073 <span style="color:#898887">/* unique dates only */</span> 0074 <span style="font-weight:bold">by</span> <span style="color:#006e28">`by'</span> <span style="color:#006e28">`date0'</span>, <span style="font-weight:bold">sort</span>: <span style="font-weight:bold">keep</span> <span style="font-weight:bold">if</span> <span style="color:#0057ae">_n</span>==1 0075 0076 <span style="color:#898887">/* calculate totals (+ when spell starts - when ends) */</span> 0077 <span style="font-weight:bold">sort</span> <span style="color:#006e28">`by'</span> 0078 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`xvars'</span> { 0079 <span style="font-weight:bold">by</span> <span style="color:#006e28">`by'</span>: <span style="font-weight:bold">replace</span> <span style="color:#006e28">`v'</span> = <span style="font-weight:bold">sum</span>(<span style="color:#006e28">``v'</span>') 0080 } 0081 <span style="font-weight:bold">by</span> <span style="color:#006e28">`by'</span>: g <span style="color:#006e28">`date1'</span> = <span style="color:#006e28">`date0'</span>[<span style="color:#0057ae">_n</span> + 1] 0082 0083 <span style="font-weight:bold">drop</span> <span style="font-weight:bold">if</span> <span style="color:#006e28">`date0'</span>><span style="color:#006e28">`date1'</span> 0084 <span style="font-weight:bold">drop</span> _stack 0085 <span style="font-weight:bold">drop</span> <span style="font-weight:bold">if</span> _count==0 0086 <span style="font-weight:bold">order</span> <span style="color:#006e28">`by'</span> <span style="color:#006e28">`date0'</span> <span style="color:#006e28">`date1'</span> <span style="color:#006e28">`xvars'</span> 0087 <span style="font-weight:bold">format</span> <span style="color:#006e28">`date0'</span> <span style="color:#006e28">`f0'</span> 0088 <span style="font-weight:bold">format</span> <span style="color:#006e28">`date1'</span> <span style="color:#006e28">`f1'</span> 0089 0090 cap <span style="font-weight:bold">for</span> <span style="font-weight:bold">var</span> <span style="color:#006e28">`meanvars'</span>: <span style="font-weight:bold">replace</span> X = X/_count 0091 0092 <span style="font-weight:bold">compress</span> 0093 } 0094 0095 <span style="font-weight:bold">end</span> 0096 </pre></body></html>