code: def watsons_f(DI1, DI2):
      
      # first calculate R for the combined data set, then R1 and R2 for each individually.
      # create a new array from two smaller ones
      DI = np.concatenate((DI1, DI2), axis=0)
      fpars = fisher_mean(DI)  # re-use our functionfrom problem 1b
      fpars1 = fisher_mean(DI1)
      fpars2 = fisher_mean(DI2)
      N = fpars['n']
      R = fpars['r']
      R1 = fpars1['r']
      R2 = fpars2['r']
      F = (N-2.)*((R1+R2-R)/(N-R1-R2))
      Fcrit = fcalc(2, 2*(N-2))
      return F, Fcrit
docs: calculates Watson's F statistic (equation 11.16 in Essentials text book).
  
      Parameters
      _________
      DI1 : nested array of [Dec,Inc] pairs
      DI2 : nested array of [Dec,Inc] pairs
  
      Returns
      _______
      F : Watson's F
      Fcrit : critical value from F table