docs: def remove_variable(self, variable, *, implied=True, verbose=True):
          """Remove variable from data.
  
          Parameters
          ----------
          variable : int or str
              Variable index or name to remove.
          implied : boolean (optional)
              Toggle deletion of other variables that start with the same
              name. Default is True.
          verbose : boolean (optional)
              Toggle talkback. Default is True.
          """
          if isinstance(variable, int):
              variable = self.variable_names[variable]
          # find all of the implied variables
          removed = []
          if implied:
              for n in self.variable_names:
                  if n.startswith(variable):
                      removed.append(n)
          else:
              removed = [variable]
          # check that axes will not be ruined
          for n in removed:
              for a in self._axes:
                  if n in [v.natural_name for v in a.variables]:
                      message = "{0} is contained in axis {1}".format(n, a.expression)
                      raise RuntimeError(message)
              for c in self._constants:
                  if n in [v.natural_name for v in c.variables]:
                      warnings.warn(
                          "Variable being removed used in a constant",
                          wt_exceptions.WrightToolsWarning,
                      )
  
          # do removal
          for n in removed:
              variable_index = wt_kit.get_index(self.variable_names, n)
              new = list(self.variable_names)
              name = new.pop(variable_index)
              del self[name]
              self.variable_names = new
              self._variables = None
          # finish
          if verbose:
              print("{0} variable(s) removed:".format(len(removed)))
              for n in removed:
                  print("  {0}".format(n))