UNPKG

comparative-judgement

Version:

Comparative Judgement Algorithms

64 lines (60 loc) 1.55 kB
var csv = require('fast-csv'); var async = require('async'); var interRater = require('./interRater'); var fs = require("fs"); var _ = require("underscore"); function irCsv(iters, file, exclude, callback){ console.log(iters, file, exclude); var decisions; var out; async.series([ function(callback){ readDecisionsCsv(file, function(err, dat){ decisions = dat; callback(); }); }, function(callback){ interRater.interRaterReliability(iters, decisions, exclude, function(err, dat){ out = dat; callback(); }); }, function(callback){ writeInterRaterCsv(out, function(err, result){ callback(); }); } ], function(err){ callback(); }); } var readDecisionsCsv = function(csvFile, callback){ var decisions = []; csv .fromPath(csvFile, {headers:true}) .on("data", function(data){ decisions.push({chosen:data['Candidate Chosen'], notChosen:data['Candidate Not Chosen'], judge:data.Judge}); }) .on("end", function(){ callback(null, decisions); }); }; var writeInterRaterCsv = function(data, callback){ var fn = Date.now() + '.csv'; var ws = fs.createWriteStream(fn); var dat = []; for(var i=0; i<data.values.length; i++){ dat.push({cor:data.values[i]}); } csv .write(dat, { headers: false, }) .pipe(ws); callback(null, 'csv written'); }; module.exports = { irCsv:irCsv, };