/** * Merge files by summing up values from columns * * @param files * input files * @param output * output file * @param header * use header * @param startColumnID * sum values of columns starting from a column id */publicstaticvoidcombineResults(List<File>files,Fileoutput,booleanheader,intstartColumnID){if(files==null||files.size()==0){return;}//anarraylistofarraylistoflinesArrayList<ArrayList<String>>lineSetList=newArrayList<ArrayList<String>>();for(inti=0;i<files.size();i++)lineSetList.add(FileManager.ReadLines(files.get(i).getAbsolutePath()));//countthenumberofcolumnintcolumnCount=lineSetList.get(0).get(0).split("[\t]").length;introwCount=lineSetList.get(0).size();StringheaderString=header==true?lineSetList.get(0).get(0):null;ArrayList<Double[]>sumValues=ArrayProcessing.initializeDoubleArrayList(rowCount,columnCount);//mergecolumnsbysumupvaluesfromfilesfor(intfileID=0;fileID<files.size();fileID++){intlineID=header==true?1:0;//parselinefor(;lineID<lineSetList.get(fileID).size();lineID++){String[]strValues=lineSetList.get(fileID).get(lineID).split("[\t]");Double[]dblValues=ArrayProcessing.convertDouble(strValues);//accumulatevalue//forcolumnsthathavethesamevalue,wedonotsumvaluesintcolumnID=0;for(;columnID<startColumnID;columnID++){sumValues.get(lineID)[columnID]=dblValues[columnID];}//sumvaluesofeachcolumninalineArrayProcessing.updateArray(sumValues,lineID,startColumnID,dblValues);}}StringBuildersb=newStringBuilder();System.out.println(sb.append(ArrayProcessing.toString(sumValues,headerString)));FileManager.WriteToFile(sb.toString(),output.getAbsolutePath());}
Last edit: Duy Dinh 2013-10-04
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Last edit: Duy Dinh 2013-10-04
Last edit: Duy Dinh 2013-10-04