1#ifndef FSTDATAACCESSORSPLITTINGMEMCSV_H
2#define FSTDATAACCESSORSPLITTINGMEMCSV_H
60template<
typename DATATYPE,
typename IDXTYPE,
class INTERVALCONTAINER>
61class Data_Accessor_Splitting_MemCSV :
public Clonable_Impl<Data_Accessor_Splitting_MemCSV<DATATYPE,IDXTYPE,INTERVALCONTAINER>,Data_Accessor_Splitting_Mem<DATATYPE,IDXTYPE,INTERVALCONTAINER>,CLONE_INHERIT,CLONE_WEAK_SHARING,CLONE_INHERIT>
70 typedef std::shared_ptr<Data_Scaler<DATATYPE> >
PScaler;
76 virtual std::ostream&
print(std::ostream& os)
const override;
100template<
typename DATATYPE,
typename IDXTYPE,
class INTERVALCONTAINER>
110 clsSize.reset(
new IDXTYPE[
clsCount], std::default_delete<IDXTYPE[]>());
114template<
typename DATATYPE,
typename IDXTYPE,
class INTERVALCONTAINER>
118 {std::ostringstream sos; sos <<
"Reading data to memory...";
syncout::print(std::cout,sos);}
120 for(
unsigned int p=0;p<
CSVFile->getTotalSize();p++)
122 for(
unsigned int f=0;f<
CSVFile->getNoOfFeatures();f++) {
123 this->
data.get()[idx++]=(DATATYPE)
CSVFile->getFeatureValue(p,f);
127 {std::ostringstream sos; sos <<
"done."<<std::endl;
syncout::print(std::cout,sos);}
132template<
typename DATATYPE,
typename IDXTYPE,
class INTERVALCONTAINER>
136 os << std::endl <<
"Data_Accessor_Splitting_MemCSV()";
CRTP mixin implementing the Clonable protocol for a concrete class.
Definition clonable.hpp:184
bool is_sharing_clone() const
true if this instance is BOTH a clone and sharing – i.e. specifically a sharing_clone() result,...
Definition clonable.hpp:127
Implements data access to data cached entirely in memory, read once from a CSV (delimited text) file;...
Definition data_accessor_splitting_memCSV.hpp:62
std::shared_ptr< Data_Scaler< DATATYPE > > PScaler
Definition data_accessor_splitting_memCSV.hpp:70
std::unique_ptr< Data_File_CSV > CSVFile
Definition data_accessor_splitting_memCSV.hpp:84
virtual void initial_data_read() override
copies the reader's values into the base class's data array, then releases the reader;
Definition data_accessor_splitting_memCSV.hpp:115
Data_Accessor_Splitting_Mem< DATATYPE, IDXTYPE, INTERVALLER > DASM
Definition data_accessor_splitting_memCSV.hpp:64
std::shared_ptr< IDXTYPE > clsSize
Definition data_accessor_splitting_memCSV.hpp:89
Clonable_Impl< Data_Accessor_Splitting_MemCSV, DASM, CLONE_INHERIT, CLONE_WEAK_SHARING, CLONE_INHERIT > parent_impl
Definition data_accessor_splitting_memCSV.hpp:69
Data_Accessor_Splitting_MemCSV(const Data_Accessor_Splitting_MemCSV &damt, int x)
Weak (referencing) copy-constructor used by sharing_clone(); transfers opts and the cached header cou...
Definition data_accessor_splitting_memCSV.hpp:82
Data_File_CSV_Options opts
Definition data_accessor_splitting_memCSV.hpp:85
virtual void initial_file_prepare() override
opens CSVFile, reads and class-sorts it, and caches clsCount/featureCount/clsSize; throws fst_error i...
Definition data_accessor_splitting_memCSV.hpp:101
unsigned int clsCount
Definition data_accessor_splitting_memCSV.hpp:87
virtual unsigned int file_getNoOfClasses() const override
clsCount, as required by Data_Accessor_Splitting_Mem
Definition data_accessor_splitting_memCSV.hpp:95
virtual IDXTYPE file_getClassSize(unsigned int cls) const override
clsSize[cls], as required by Data_Accessor_Splitting_Mem
Definition data_accessor_splitting_memCSV.hpp:97
virtual unsigned int file_getNoOfFeatures() const override
featureCount, as required by Data_Accessor_Splitting_Mem
Definition data_accessor_splitting_memCSV.hpp:96
Data_Accessor_Splitting_MemCSV(const std::string _filename, const Data_File_CSV_Options &_opts, const PSplitters _dsp, const PScaler _dsc)
Constructs the accessor for the CSV/TSV file _filename under dialect/class-column/missing-value optio...
Definition data_accessor_splitting_memCSV.hpp:73
virtual std::ostream & print(std::ostream &os) const override
writes the splitter stack's print() output (or "Data_Accessor_Splitting()" if the stack is empty) to ...
Definition data_accessor_splitting_memCSV.hpp:133
DASM::PSplitters PSplitters
Definition data_accessor_splitting_memCSV.hpp:71
unsigned int featureCount
Definition data_accessor_splitting_memCSV.hpp:88
Implements data access to data cached entirely in memory, concrete file type support is delegated to ...
Definition data_accessor_splitting_mem.hpp:102
DAS::PSplitters PSplitters
Definition data_accessor_splitting_mem.hpp:110
virtual std::ostream & print(std::ostream &os) const override
writes the splitter stack's print() output (or "Data_Accessor_Splitting()" if the stack is empty) to ...
Definition data_accessor_splitting_mem.hpp:412
std::shared_ptr< DATATYPE > data
Definition data_accessor_splitting_mem.hpp:199
std::string filename
Definition data_accessor_splitting_mem.hpp:196
CSV (delimited text) data format filter — the simplest spreadsheet-to-FST4 path.
Definition data_file_CSV.hpp:91
FST4 specific error passing class.
Definition error.hpp:61
static void print(std::ostream &os, std::ostringstream &sos)
Writes sos's buffered content to os, serializing concurrent writers under FST_THREADED via a shared m...
Definition global.hpp:86
Implements data access to data cached entirely in memory, concrete file type support is delegated to ...
Enables data accessor objects to read CSV (delimited text, e.g. Excel export) data files.
FST4 specific error passing class.
The Feature Selection Toolbox 4 library: every library component – data access, criteria and classifi...
Definition data_accessor.hpp:80
void notify(const std::string msg)
Prints msg followed by a newline via syncout::print(); a no-op unless the preprocessor macro DEBUG is...
Definition global.hpp:112
CSV loader options.
Definition data_file_CSV.hpp:63