add is_factor_dataframe