【C++】複数の変数の基本統計量を計算し、結果を保存する方法
目次
基本統計量とは
基本統計量とは、データの特徴を要約するための数値指標です。代表的なものには以下があります。
- 平均(Mean)
- 分散(Variance)
- 標準偏差(Standard Deviation)
- 最大値(Max)と最小値(Min)
- 中央値(Median)
C++での基本統計量の計算方法
C++では、基本統計量を計算するために、配列やベクターを使います。以下に簡単な例を示します。
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cmath>
// 平均を計算する関数
double mean(const std::vector<double>& data) {
return std::accumulate(data.begin(), data.end(), 0.0) / data.size();
}
// 分散を計算する関数
double variance(const std::vector<double>& data, double mean_value) {
double sum = 0.0;
for (double x : data) {
sum += (x - mean_value) * (x - mean_value);
}
return sum / data.size();
}
テキストファイル(.txt)への保存
計算した統計量を.txtファイルに保存するには、ofstream
を使用します。
#include <fstream>
void save_to_txt(const std::string& filename, double mean, double var) {
std::ofstream file(filename);
file << "平均: " << mean << "\n";
file << "分散: " << var << "\n";
file.close();
}
CSVファイル(.csv)への保存
CSVファイルに保存すると、Excelなどで簡単に閲覧できます。
#include <fstream>
void save_to_csv(const std::string& filename, double mean, double var) {
std::ofstream file(filename);
file << "統計量,値\n";
file << "平均," << mean << "\n";
file << "分散," << var << "\n";
file.close();
}
総合的なサンプルコード
以下は、複数の変数に対して統計量を計算し、.txtと.csvに保存する総合的なコードです。
#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
#include <numeric>
#include <cmath>
// 統計量の計算関数群
double mean(const std::vector<double>& data) {
return std::accumulate(data.begin(), data.end(), 0.0) / data.size();
}
double variance(const std::vector<double>& data, double mean_value) {
double sum = 0.0;
for (double x : data) {
sum += (x - mean_value) * (x - mean_value);
}
return sum / data.size();
}
// ファイル保存関数
void save_to_txt(const std::string& filename, double mean, double var) {
std::ofstream file(filename);
file << "平均: " << mean << "\n";
file << "分散: " << var << "\n";
file.close();
}
void save_to_csv(const std::string& filename, double mean, double var) {
std::ofstream file(filename);
file << "統計量,値\n";
file << "平均," << mean << "\n";
file << "分散," << var << "\n";
file.close();
}
int main() {
std::vector<double> data = {1.0, 2.0, 3.0, 4.0, 5.0};
double mean_value = mean(data);
double var_value = variance(data, mean_value);
save_to_txt("statistics.txt", mean_value, var_value);
save_to_csv("statistics.csv", mean_value, var_value);
std::cout << "統計量を保存しました。" << std::endl;
return 0;
}
このコードを実行すると、statistics.txt
とstatistics.csv
に基本統計量が保存されます。