No announcement yet.
  • Filter
  • Time
  • Show
Clear All
new posts

  • outreg error

    Has anyone encountered this error with outreg?

    . outreg using c:\tmp\regressions1.doc, merge
                    MergeL():  3499  selectindex() not found
                     Merge():     -  function returned error
                  FrmtFill():     -  function returned error
                     <istmt>:     -  function returned error
    Outreg is a user-written module, installed from:
    outreg from

    . which outreg
    *! Write formatted regression output to a text file
    *! version 4.31  12jul2015 by John Luke Gallup (
    Click image for larger version

Name:	outreg.png
Views:	1
Size:	24.9 KB
ID:	1305771

  • #2

    It works fine for me on Stata 13. Notice the error is complaining Mata function selectindex() not found, which is an internal Mata function we added in Stata 13. I get the exact same error when using Stata 12. I suspect you are running version 12 or earlier.

    Last edited by Hua Peng (StataCorp); 11 Aug 2015, 16:31.


    • #3
      To follow Hua's comment

      documents addition of selectindex() to Stata 13. This help file should be accessible regardless of the version of Stata you are using.


      • #4
        Dear Hua and Nick, thank you very much for your answers.
        Indeed the error was observed in version 12. However the outreg package declares compatibility with v10.1 and I recall using it with older Stata versions, so I assumed it was my problem only.

        d Requires: Stata version 10.1
        Thank you very much, Sergiy Radyakin


        • #5
          That claim is thus incorrect, or at least out-of-date. This problem has been much discussed on the forum. The only sure-fire way to test that a program runs with Stata X is to run it in Stata X.


          • #6
            For this particular issue, there is an "easy" workaround since the missing Mata function selectindex() is fairly trivial. We can implement our own version of selectindex(v) in Stata 12. According to documentation, selectindex(v) returns

            HTML Code:
            1. a row vector of column indices j for which v[j]!=0 (v a row vector) or
            2. a column vector of row indices i for which v[i]!=0 (v a column vector)

            *! version 1.0.0  11aug2015
            version 12.0
            real vector selectindex(real vector v)
                real scalar row, col, cnt, i
                vector res
                row = rows(v)
                col = cols(v)
                cnt = 1
                res = J(1, row*col, 0)
                for(i=1; i<=row*col; i++) {
                    if(v[i] != 0) {
                        res[cnt] = i ;
                        cnt++ ;
                if(cnt>1) {
                    res = res[1, 1..cnt-1]
                else {
                    res = J(1, 0, 0)
                if(row>1) {
                    res = res'
            We save the code to a file named select.mata. Then we create a Mata library lmyselect.mlib and add our version of selectindex() to the library

            do select.mata
            mata: mata mlib create lmyselect
            mata: mata mlib add lmyselect selectindex()
            In order for Stata to be able to find and use the function, we need move the lmyselect.mlib to somewhere in Stata's ado path. I choose to put it under my Stata's PLUS directory c:\ado\plus\l\. Now -outreg, merge- works in Stata 12 using our version of selectindex().

            . sysuse auto
            (1978 Automobile Data)
            . qui reg mpg price
            . outreg using test.doc
                                           price    -0.001   
                                           _cons    26.964   
                                           R2        0.22    
                                           N          74     
                                          * p<0.05; ** p<0.01
            . qui reg mpg price weight
            . outreg using test.doc, merge
                                                 mpg        mpg    
                                     price     -0.001     -0.000   
                                              (4.50)**    (0.57)   
                                     weight               -0.006   
                                     _cons     26.964     39.440   
                                              (19.34)**  (24.32)**
                                     R2         0.22       0.65    
                                     N           74         74     
                                          * p<0.05; ** p<0.01


            • #7
              Thank you, Hua, for demonstrating how the function can be implemented in an earlier version of Stata. Yesterday, I have contacted the author of outreg John Luke Gallup off the list and he confirmed he intends to correct this issue in a future release. Best, Sergiy


              • #8
                The outreg code should now run in Stata 10 or higher. I used Hua's suggestion to replace the selectindex() function. Several months ago I rewrote the code to merge two outreg tables to address an unusual way that users might want to merge tables, but did not notice that selectindex() is a post-Stata 10 function. Thanks for tracking down the problem and suggesting a solution. The corrected version is outreg 4.32.