###前提・実現したいこと
適当な数字10個が入ったcsvファイルをjavaで読み込み、平均値・中央値・標準偏差を計算して、新たなcsvファイルに出力するプログラムを書いています。
###発生している問題・エラーメッセージ
平均値まではできたのですが、中央値・標準偏差のやり方がわかりません。 インターネットの情報をいろいろ試しましたが、全くの初心者なので、限界を感じています。
###該当のソースコード
public static void main(String[] args) { try { //データをうまく入出力できるとき String inputfile = "/Users/Documents/input.csv"; //インプットファイル名 BufferedReader br = new BufferedReader(new FileReader(inputfile)); String line = null; //1行ごとに読み込む変数を用意 int i=0; ArrayList<String> list = new ArrayList<String>(); for(i = 0 ; i < args.length ; i++) { list.add(args[i]); } int count=0; double ave = 0; double M =0; double stdev=0; while ((line = br.readLine()) != null) { //最終行になるまで読み込む ave += Double.valueOf(line); M += Double.valueOf(line); stdev += Double.valueOf(line); count++; } ave /= count;//平均の計算 M+=Math.pow(i-ave,2.0);//i(それぞれの数)-aveの2乗をnで割る stdev=Math.sqrt(M/count);//Mの平方根をとる br.close(); String outputfile = "/Users/Documents/output.csv"; //アウトプットファイル名 PrintWriter pw = new PrintWriter(new FileWriter(outputfile)); pw.println(ave); pw.println(stdev); pw.close(); } catch( IOException e ) { //データを入出力ができなかったとき System.out.println("データ入出力失敗"); } } }
###試したこと
配列を用意する
###補足情報(言語/FW/ツール等のバージョンなど)
Javaです
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。