<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sar(patch, cols, splits, divs, ear=False):
 """ Calculates an empirical species area or endemics area relationship Parameters {0} divs : str Description of how to divide x_col and y_col. See notes. ear : bool If True, calculates an endemics area relationship Returns ------- {1} Result has 5 columns; div, x, and y; that give the ID for the division given as an argument, fractional area, and the mean species richness at that division. Notes ----- {2} For the SAR and EAR, cols must also contain x_col and y_col, giving the x and y dimensions along which to grid the patch. {3} {4} Examples -------- {5} cols='spp_col:spp; count_col:count; x_col:row; y_col:column', splits="", divs="1,1; 1,2; 2,1; 2,2; 2,4; 4,2; 4,4") div n_individs n_spp x y 0 1,1 2445.0000 24.0000 16 24.0000 1 1,2 1222.5000 18.5000 8 18.5000 2 2,1 1222.5000 17.0000 8 17.0000 3 2,2 611.2500 13.5000 4 13.5000 4 2,4 305.6250 10.1250 2 10.1250 5 4,2 305.6250 10.5000 2 10.5000 6 4,4 152.8125 7.5625 1 7.5625 The column div gives the divisions specified in the function call. The column n_individs specifies the average number of individuals across the cells made from the given division. n_spp gives the average species across the cells made from the given division. x gives the absolute area of a cell for the given division. y gives the same information as n_spp and is included for easy plotting. See http://www.macroeco.org/tutorial_macroeco.html for additional examples and explanation """


    def sar_y_func(spatial_table, all_spp):
        return np.mean(spatial_table['n_spp'])

    def ear_y_func(spatial_table, all_spp):
        endemic_counter = 0
        for spp in all_spp:
            spp_in_cell = [spp in x for x in spatial_table['spp_set']]
            spp_n_cells = np.sum(spp_in_cell)
            if spp_n_cells == 1:  # If a spp is in only 1 cell, endemic
                endemic_counter += 1
        n_cells = len(spatial_table)
        return endemic_counter / n_cells # mean endemics / cell

    if ear:
        y_func = ear_y_func
    else:
        y_func = sar_y_func

    return _sar_ear_inner(patch, cols, splits, divs, y_func)