Data Generator

by IPWright83

JavaScript

const samples = 2000;
const data = [];

function randn_bm() {
    var u = 0, v = 0;
    while(u === 0) u = Math.random(); //Converting [0,1) to (0,1)
    while(v === 0) v = Math.random();
    let num = Math.sqrt( -2.0 * Math.log( u ) ) * Math.cos( 2.0 * Math.PI * v );
    num = num / 10.0 + 0.5; // Translate to 0 -> 1
    if (num > 1 || num < 0) return randn_bm(); // resample between 0 and 1
    return num;
}

for(let i = 0; i < samples; i++) {
	const attendance = randn_bm() * 100;
  const libraryVisits = randn_bm() * attendance;
  const bookLoans = randn_bm() * libraryVisits;
  const vle = randn_bm() * bookLoans;
  const lectureReplay = randn_bm() * vle;
  const year = Math.floor(Math.random() * 4) + 1;
  const tier4 = Math.floor(Math.random() * 2) + 1 === 1 ? true : false;
  
  data.push({
  	attendance,
    vle: Math.floor(vle),
    bookLoans: Math.floor(bookLoans),
    lectureReplay: Math.floor(lectureReplay),
    libraryVisits: Math.floor(libraryVisits),
    year,
    tier4
  });
}

const results = data
	.map(d => `${d.attendance},${d.vle},${d.bookLoans},${d.lectureReplay},${d.libraryVisits},${d.year},${d.tier4}`)
	.join("\n");

console.log(results);



console.log(data);