def set_sample(self): sample_cols = tuple( [self.__dict__[x] for x in self.sample_cols_labels]) self.sample = flag_sample(self.df, *sample_cols) if self.nosingles and self.fe_name: self.sample &= flag_nonsingletons(self.df, self.fe_name, self.sample) sample_vars = set_sample(self.df, self.sample, sample_cols) self.__dict__.update(dict(zip(self.sample_store_labels, sample_vars))) self.x = force_df(self.x) self.y = self.y.squeeze() # Force regression variables to float64 for var in self.vars_in_reg: self.__dict__[var] = self.__dict__[var].astype(np.float64) # Demean or add constant if self.fe_name is not None: self._demean_sample() elif self.addcons: _cons = np.ones(self.y.shape[0]) x = self.__dict__[self.add_constant_to] if x.empty: x = pd.DataFrame(_cons, columns=['_cons'], index=self.y.index) else: x['_cons'] = _cons self.__dict__[self.add_constant_to] = x # Re-weight sample if self.AWT is not None: self._weight_sample()