【C++】複数の変数の基本統計量を計算し、結果を保存する方法

【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.txtstatistics.csvに基本統計量が保存されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です