Signature Description Parameters
template<typename T, typename F, typename ... Ts>
DataFrame
get_data_by_sel(const char *name, F &sel_functor) const;
This method does Boolean filtering selection via the sel_functor (e.g. a functor, function, or lambda). It returns a new DataFrame. Each element of the named column along with its corresponding index is passed to the sel_functor. If sel_functor returns true, that index is selected and all the elements of all column for that index will be included in the returned DataFrame.
The signature of sel_fucntor:
          bool ()(const IndexType &, const T &)
        
NOTE If the selection logic results in empty column(s), the result empty columns will _not_ be padded with NaN's. You can always call make_consistent() on the original or result DataFrame to make all columns into consistent length
T: Type of the named column
F: Type of the selecting functor
Ts: The list of types for all columns. A type should be specified only once
name: Name of the data column
sel_functor: A reference to the selecting functor
template<typename T, typename F, typename ... Ts>
DataFramePtrView<I>
get_view_by_sel(const char *name, F &sel_functor) const;
This is identical with above get_data_by_sel(), but:
  1. The result is a view
  2. Since the result is a view, you cannot call make_consistent() on the result.
NOTE: There are certain operations that you cannot do with a view. For example, you cannot add/delete columns, etc.
NOTE: Although this is a const method, it returns a view. So, the data could still be modified through the returned view
T: Type of the named column
F: Type of the selecting functor
Ts: The list of types for all columns. A type should be specified only once
name: Name of the data column
sel_functor: A reference to the selecting functor
template<typename T1, typename T2, typename F, typename ... Ts>
DataFrame
get_data_by_sel(const char *name1, const char *name2, F &sel_functor) const;
This does the same function as above get_data_be_sel() but operating on two columns.
The signature of sel_fucntor:
          bool ()(const IndexType &, const T1 &, const T2 &)
        
T1: Type of the first named column
T2: Type of the second named column
F: Type of the selecting functor
Ts: The list of types for all columns. A type should be specified only once
name1: Name of the first data column
name2: Name of the second data column
sel_functor: A reference to the selecting functor
template<typename T1, typename T2, typename F, typename ... Ts>
DataFramePtrView<I>
get_view_by_sel(const char *name1, const char *name2, F &sel_functor) const;
This is identical with above get_data_by_sel(), but:
  1. The result is a view
  2. Since the result is a view, you cannot call make_consistent() on the result.
NOTE: There are certain operations that you cannot do with a view. For example, you cannot add/delete columns, etc.
NOTE: Although this is a const method, it returns a view. So, the data could still be modified through the returned view
T1: Type of the first named column
T2: Type of the second named column
F: Type of the selecting functor
Ts: The list of types for all columns. A type should be specified only once
name1: Name of the first data column
name2: Name of the second data column
sel_functor: A reference to the selecting functor
template<typename T1, typename T2, typename T3, typename F, typename ... Ts>
DataFrame
get_data_by_sel(const char *name1, const char *name2, const char *name3, F &sel_functor) const;
This does the same function as above get_data_be_sel() but operating on three columns.
The signature of sel_fucntor:
        bool ()(const IndexType &, const T1 &, const T2 &, const T3 &)
        
T1: Type of the first named column
T2: Type of the second named column
T3: Type of the third named column
F: Type of the selecting functor
Ts: The list of types for all columns. A type should be specified only once
name1: Name of the first data column
name2: Name of the second data column
name3: Name of the third data column
sel_functor: A reference to the selecting functor
template<typename T1, typename T2, typename T3, typename F, typename ... Ts>
DataFramePtrView<I>
get_view_by_sel(const char *name1, const char *name2, const char *name3, F &sel_functor) const;
This is identical with above get_data_by_sel(), but:
  1. The result is a view
  2. Since the result is a view, you cannot call make_consistent() on the result.
NOTE: There are certain operations that you cannot do with a view. For example, you cannot add/delete columns, etc.
NOTE: Although this is a const method, it returns a view. So, the data could still be modified through the returned view
T1: Type of the first named column
T2: Type of the second named column
T3: Type of the third named column
F: Type of the selecting functor
Ts: The list of types for all columns. A type should be specified only once
name1: Name of the first data column
name2: Name of the second data column
name3: Name of the third data column
sel_functor: A reference to the selecting functor