-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProcessData.cpp
50 lines (43 loc) · 1.21 KB
/
ProcessData.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "ProcessData.h"
using std::stringstream;
// Constructor
ProcessData::ProcessData(string file_path, int num_features) {
file_path_ = file_path;
num_features_ = num_features;
}
// Imports data and saves to a vector of vectors
void ProcessData::importData() {
cout << "Importing data: " << file_path_ << "\n";
// Define the number of rows and columns
const int rows = 600000;
const int cols = num_features_;
// Reserve the space for the data vector
data_.reserve(rows);
// Read each line of the file
string line;
while (getline(file_, line)) {
stringstream ss(line);
// Declare a vector to store the values in the line
vector<double> row;
row.reserve(cols);
string value;
while (getline(ss, value, ',')) {
row.push_back(stod(value));
}
// Push the row vector to the data vector
data_.push_back(row);
}
}
// Checks if file is open, returns false if not
bool ProcessData::checkFile() {
file_.open(file_path_);
return file_.is_open();
}
// Closes file
void ProcessData::closeFile() {
file_.close();
}
// Get function
vector<vector<double>>& ProcessData::getData() {
return data_;
}