code: def calc_inbag(n_samples, forest):
      
  
      if not forest.bootstrap:
          e_s = "Cannot calculate the inbag from a forest that has "
          e_s = " bootstrap=False"
          raise ValueError(e_s)
  
      n_trees = forest.n_estimators
      inbag = np.zeros((n_samples, n_trees))
      sample_idx = []
      for t_idx in range(n_trees):
          sample_idx.append(
              _generate_sample_indices(forest.estimators_[t_idx].random_state,
                                       n_samples))
          inbag[:, t_idx] = np.bincount(sample_idx[-1], minlength=n_samples)
      return inbag
docs: Derive samples used to create trees in scikit-learn RandomForest objects.
  
      Recovers the samples in each tree from the random state of that tree using
      :func:`forest._generate_sample_indices`.
  
      Parameters
      ----------
      n_samples : int
          The number of samples used to fit the scikit-learn RandomForest object.
  
      forest : RandomForest
          Regressor or Classifier object that is already fit by scikit-learn.
  
      Returns
      -------
      Array that records how many times a data point was placed in a tree.
      Columns are individual trees. Rows are the number of times a sample was
      used in a tree.