nodes: 0, module; 1, function_definition; 2, function_name:lag; 3, parameters; 4, block; 5, identifier:expr; 6, identifier:offset; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, expression_statement; 11, return_statement; 12, identifier:default; 13, None; 14, identifier:sort; 15, None; 16, identifier:ascending; 17, True; 18, comment:"""
      Get value in the row ``offset`` rows prior to the current row.
  
      :param offset: the offset value
      :param default: default value for the function, when there are no rows satisfying the offset
      :param expr: expression for calculation
      :param sort: name of the sort column
      :param ascending: whether to sort in ascending order
      :return: calculated column
      """; 19, call; 20, identifier:_shift_op; 21, argument_list; 22, identifier:expr; 23, identifier:Lag; 24, identifier:offset; 25, keyword_argument; 26, keyword_argument; 27, keyword_argument; 28, identifier:default; 29, identifier:default; 30, identifier:sort; 31, identifier:sort; 32, identifier:ascending; 33, identifier:ascending
code: def lag(expr, offset, default=None, sort=None, ascending=True):
      """
      Get value in the row ``offset`` rows prior to the current row.
  
      :param offset: the offset value
      :param default: default value for the function, when there are no rows satisfying the offset
      :param expr: expression for calculation
      :param sort: name of the sort column
      :param ascending: whether to sort in ascending order
      :return: calculated column
      """
      return _shift_op(expr, Lag, offset, default=default,
                       sort=sort, ascending=ascending)