| Signature | Description | Parameters |
|---|---|---|
template<comparable T, typename ... Ts> DataFrame<I, H> get_n_largest_data(const char *col_name, size_type n, bool abs_value = false) const; |
This returns a new DataFrame corresponding to n largest values in the named column. The returned DataFrame is sorted in descending order of named column. The self is unchanged. NOTE Comparison operators (<, >, ==) must be well defined for type T. |
T: Type of the named column Ts: List all the types of all data columns. A type should be specified in the list only once. col_name: The name of a column or DF_INDEX_COL_NAME n: Number of largest values abs_value: If this is true, absolute values are considered |
template<comparable T, typename ... Ts> PtrView get_n_largest_view(const char *col_name, size_type n, bool abs_value = false); |
Same as above get_n_largest_data but it returns a View |
T: Type of the named column Ts: List all the types of all data columns. A type should be specified in the list only once. col_name: The name of a column or DF_INDEX_COL_NAME n: Number of largest values abs_value: If this is true, absolute values are considered |
template<comparable T, typename ... Ts> ConstPtrView get_n_largest_view(const char *col_name, size_type n, bool abs_value = false) const; |
Same as above get_n_largest_view but it returns a const View |
T: Type of the named column Ts: List all the types of all data columns. A type should be specified in the list only once. col_name: The name of a column or DF_INDEX_COL_NAME n: Number of largest values abs_value: If this is true, absolute values are considered |
template<comparable T, typename ... Ts> DataFrame<I, H> get_n_smallest_data(const char *col_name, size_type n, bool abs_value = false) const; |
This returns a new DataFrame corresponding to n smallest values in the named column. The returned DataFrame is sorted in ascending order of named column. The self is unchanged. NOTE Comparison operators (<, >, ==) must be well defined for type T. |
T: Type of the named column Ts: List all the types of all data columns. A type should be specified in the list only once. col_name: The name of a column or DF_INDEX_COL_NAME n: Number of smallest values abs_value: If this is true, absolute values are considered |
template<comparable T, typename ... Ts> PtrView get_n_smallest_view(const char *col_name, size_type n, bool abs_value = false); |
Same as above get_n_smallest_data but it returns a View |
T: Type of the named column Ts: List all the types of all data columns. A type should be specified in the list only once. col_name: The name of a column or DF_INDEX_COL_NAME n: Number of smallest values abs_value: If this is true, absolute values are considered |
template<comparable T, typename ... Ts> ConstPtrView get_n_smallest_view(const char *col_name, size_type n, bool abs_value = false) const; |
Same as above get_n_smallest_view but it returns a const View |
T: Type of the named column Ts: List all the types of all data columns. A type should be specified in the list only once. col_name: The name of a column or DF_INDEX_COL_NAME n: Number of smallest values abs_value: If this is true, absolute values are considered |
static void test_get_n_largest_data() { std::cout << "\nTesting get_n_largest_data( ) ..." << std::endl; typedef StdDataFrame64<std::string> StrDataFrame; StrDataFrame df; try { df.read("IBM.csv", io_format::csv2); } catch (const DataFrameError &ex) { std::cout << ex.what() << std::endl; ::exit(-1); } auto res_df = df.get_n_largest_data<double, double, long>("IBM_Close", 5); const auto res_vw = df.get_n_largest_view<double, double, long>("IBM_Close", 5); assert(res_df.get_index().size() == 5); assert(res_vw.get_index().size() == 5); assert((res_df.get_index()[0] == "2013-03-14")); assert((res_vw.get_index()[0] == "2013-03-14")); assert((res_df.get_index()[3] == "2013-04-02")); assert((res_vw.get_index()[3] == "2013-04-02")); assert(res_df.get_column<double>("IBM_Low").size() == 5); assert(res_vw.get_column<double>("IBM_Low").size() == 5); assert(res_df.get_column<double>("IBM_Close").size() == 5); assert(res_vw.get_column<double>("IBM_Close").size() == 5); assert((std::fabs(res_df.get_column<double>("IBM_Close")[1] - 215.06) < 0.01)); assert((std::fabs(res_vw.get_column<double>("IBM_Close")[1] - 215.06) < 0.01)); assert((std::fabs(res_df.get_column<double>("IBM_Close")[2] - 214.92) < 0.01)); assert((std::fabs(res_vw.get_column<double>("IBM_Close")[2] - 214.92) < 0.01)); assert((res_df.get_column<long>("IBM_Volume")[3] == 3116800)); assert((res_vw.get_column<long>("IBM_Volume")[3] == 3116800)); }
// ---------------------------------------------------------------------------- static void test_get_n_smallest_data() { std::cout << "\nTesting get_n_smallest_data( ) ..." << std::endl; typedef StdDataFrame64<std::string> StrDataFrame; StrDataFrame df; try { df.read("IBM.csv", io_format::csv2); } catch (const DataFrameError &ex) { std::cout << ex.what() << std::endl; ::exit(-1); } auto res_df = df.get_n_smallest_data<double, double, long>("IBM_Close", 5); const auto res_vw = df.get_n_smallest_view<double, double, long>("IBM_Close", 5); assert(res_df.get_index().size() == 5); assert(res_vw.get_index().size() == 5); assert((res_df.get_index()[0] == "2002-10-09")); assert((res_vw.get_index()[0] == "2002-10-09")); assert((res_df.get_index()[3] == "2002-10-08")); assert((res_vw.get_index()[3] == "2002-10-08")); assert(res_df.get_column<double>("IBM_Low").size() == 5); assert(res_vw.get_column<double>("IBM_Low").size() == 5); assert(res_df.get_column<double>("IBM_Close").size() == 5); assert(res_vw.get_column<double>("IBM_Close").size() == 5); assert((std::fabs(res_df.get_column<double>("IBM_Close")[1] - 56.6) < 0.01)); assert((std::fabs(res_vw.get_column<double>("IBM_Close")[1] - 56.6) < 0.01)); assert((std::fabs(res_df.get_column<double>("IBM_Close")[2] - 56.86) < 0.01)); assert((std::fabs(res_vw.get_column<double>("IBM_Close")[2] - 56.86) < 0.01)); assert((res_df.get_column<long>("IBM_Volume")[3] == 14744500)); assert((res_vw.get_column<long>("IBM_Volume")[3] == 14744500)); }