DataFrame class
          #include <DataFrame.h>
        
        The DataFrame is a matrix where each row corresponds to a data entry and each column of that row representing a characteristic of that data entry.
Contents
Constructors, destructors, conversion operators
- DataFrame()
- Constructs and empty DataFrame with no column names.
- DataFrame(std::vector<std::string> colNames)
- Constructs an empty DataFrame with the specified column names.
- DataFrame(std::string filename)
- Constructs a DataFrame from a file. The format must be a comma separated list, with each row corresponding to a data entry, or DataFrame row. The first row contains the column names.
- DataFrame(std::vector<std::vector<Generic*>>* data)
- Constructs a DataFrame with no column names containing the passed-in data in a 2D vector.
- ~DataFrame()
- Destructor, deletes the outer vector of DataFrame.
Public functions
- void sort(int sortindex)
- Sorts this DataFrame on the specified column index.
- auto slice(int startIndex, int endIndex) const -> DataFrame*
- Returns a new DataFrame* containing all rows of this DataFrame, from the start index to end index, exclusive.
- auto filter(std::string condition) const -> DataFrame*
- Returns a new DataFrame* containing all rows where the specified condition is met. The format is "COLUMN_NAME < VALUE", where < can be any comparator operator (<, <=, >, >=, ==, !=).
- void appendRow(std::vector<Generic*> row)
- Appends a row to the DataFrame.
- void appendRows(DataFrame* other)
- Appends all rows of the passed-in DataFrame* to the end of this DataFrame.
- void set(Generic* generic, int row, int col)
- Sets the value at the passed-in row and column.
- auto get(int row, int col) const -> Generic*
- Returns the value at the passed-in row and column.
- auto getRow(int row) const -> std::vector<Generic*>
- Returns row at the specified index.
- auto getColName(int colIndex) const -> std::string
- Returns the column name at the specified column index.
- auto getColNames() const -> std::vector<std::string>
- Returns a vector containing all column names.
- auto getColType(int colIndex) const -> GenericType
- Returns the GenericType of data on the specified column.
- auto getColTypes() const -> std::vector<GenericType>
- Returns a vector containing the GenericType of data in each column.
- auto rows() const -> int
- Counts the number of rows of this DataFrame.
- auto cols() const -> int
- Counts the number of columns of this DataFrame.
- auto average(int col) const -> double
- Returns the average of all values in the specified row.
Function documentation
              DataFrame* DataFrame::
            Returns a new DataFrame* containing all rows of this DataFrame, from the start index to end index, exclusive.
| Parameters | |
|---|---|
| startIndex | the starting row index | 
| endIndex | the ending row index, exclusive | 
| Returns | DataFrame* containing the specified rows of this DataFrame | 
| Exceptions | |
| out_of_range | if start index is greater than end index, or either index is negative or greater than maximum row index | 
              DataFrame* DataFrame::
            Returns a new DataFrame* containing all rows where the specified condition is met. The format is "COLUMN_NAME < VALUE", where < can be any comparator operator (<, <=, >, >=, ==, !=).
| Parameters | |
|---|---|
| condition | the condition to filter | 
| Returns | DataFrame* a new DataFrame containing the filtered rows | 
| Exceptions | |
| domain_error | if the DataFrame is empty | 
| invalid_argument | if an invalid condition is given | 
              void DataFrame::
            Appends all rows of the passed-in DataFrame* to the end of this DataFrame.
| Parameters | |
|---|---|
| other | the DataFrame to append to this one | 
| Exceptions | |
| invalid_argument | if passed a nullptr or the DataFrames do not contain the same number of columns. | 
              std::string DataFrame::
            Returns the column name at the specified column index.
| Parameters | |
|---|---|
| colIndex | the index of the column | 
| Returns | std::string the column's name | 
| Exceptions | |
| domain_error | if no column names are stored for this DataFrame | 
| out_of_range | if the column index is out of bounds | 
              std::vector<std::string> DataFrame::
            Returns a vector containing all column names.
| Returns | std::vector<std::string> the column names | 
|---|
              GenericType DataFrame::
            Returns the GenericType of data on the specified column.
| Parameters | |
|---|---|
| colIndex | the column index | 
| Returns | GenericType the type stored at the column | 
| Exceptions | |
| range_error | if DataFrame is empty | 
| out_of_range | if column index is out of bounds | 
              std::vector<GenericType> DataFrame::
            Returns a vector containing the GenericType of data in each column.
| Returns | std::vector<GenericType> the column types | 
|---|---|
| Exceptions | |
| range_error | if DataFrame is empty | 
              double DataFrame::
            Returns the average of all values in the specified row.
| Parameters | |
|---|---|
| col | the index of the column | 
| Returns | double the average | 
| Exceptions | |
| domain_error | if DataFrame is empty | 
| out_of_range | if column index is out of bounds | 
| domain_error | if the column does not contain double values |