Калькулятор относительной частоты

@import url('https://fonts.googleapis.com/css?family=Droid+Serif|Raleway');

.axis--y .domain { display: none; }

h1 { color: black; text-align: center; margin-top: 15px; margin-bottom: 0px; font-family: 'Raleway', sans-serif; }

h2 { color: black; font-size: 20px; text-align: center; margin-bottom: 15px; margin-top: 15px; font-family: 'Raleway', sans-serif; }

p { color: black; text-align: center; margin-bottom: 15px; margin-top: 15px; font-family: 'Raleway', sans-serif; }

words_intro {

color: black; font-family: Raleway; max-width: 550px; margin: 25px auto; line-height: 1.75; }

words_outro {

color: black; font-family: Raleway; max-width: 550px; margin: 25px auto; line-height: 1.75; }

words {

color: black; font-family: Raleway; max-width: 550px; margin: 25px auto; line-height: 1.75; padding-left: 100px; }

calcTitle {

text-align: center; font-size: 20px; margin-bottom: 0px; font-family: 'Raleway', serif; }

hr_top {

width: 30%; margin-bottom: 0px; margin-top: 10px; border: none; height: 2px; color: black; background-color: black; }

hr_bottom {

width: 30%; margin-top: 15px; border: none; height: 2px; color: black; background-color: black; }

.input_label_calc { display: inline-block; vertical-align: baseline; width: 350px; }

#button_calc { border: 1px solid; border-radius: 10px; margin-top: 20px; padding: 10px 10px; cursor: pointer; outline: none; background-color: white; color: black; font-family: 'Work Sans', sans-serif; border: 1px solid grey; /* Green */ }

#button_calc:hover { background-color: #f6f6f6; border: 1px solid black; }

.label_radio { text-align: center; }

#words_table { color: black; font-family: Raleway; max-width: 350px; margin: 25px auto; line-height: 1.75; } Таблица частот — это таблица, которая показывает, сколько раз определенные значения встречаются в наборе данных. Таблица относительной частоты — это таблица, которая показывает, сколько раз встречаются определенные значения по отношению ко всем наблюдениям в наборе данных. Чтобы создать таблицу относительных частот для данного набора данных, просто введите значения, разделенные запятыми, в поле ниже, а затем нажмите кнопку «Рассчитать». 4, 14, 16, 22, 24, 25, 37, 38, 38, 40, 41, 41, 43, 44

function calc() {

//remove current table if one exists var element = document.getElementsByTagName('table')[0]; if(element) {element.parentNode.removeChild(element)}

//get input values var input_data = document.getElementById('input_data').value.split(',').map(Number);

//calculate stuff var occurrence = function (array) { "use strict"; var result = {}; if (array instanceof Array) { // Check if input is array. array.forEach(function (v, i) { if (!result[v]) { // Initial object property creation. result[v] = [i]; // Create an array for that property. } else { // Same occurrences found. result[v].push(i); // Fill the array. } }); } return result; }; var size = Object.keys(occurrence(input_data)).length;

//create array of relative and cumulative values var relFreqArray = []; for (var i = 0; i < size; i++){ relFreqArray[i] = (occurrence(input_data)[Object.keys(occurrence(input_data))[i]].length / input_data.length) }

for (var cumsum = [relFreqArray[0]], i = 0, l = relFreqArray.length-1; i<l; i++) { cumsum[i+1] = cumsum[i] + relFreqArray[i+1]; }

//generate table of frequencies var table = document.createElement('table'); function boldHTML(text) { var element = document.createElement("b"); element.innerHTML = text; return element; } var tr = document.createElement('tr');

var td1 = document.createElement('td'); var td2 = document.createElement('td'); var td3 = document.createElement('td'); var td4 = document.createElement('td');

td1.appendChild(boldHTML('Value')); td2.appendChild(boldHTML('Frequency')); td3.appendChild(boldHTML('Relative Frequency')); td4.appendChild(boldHTML('Cumulative Relative Frequency'));

tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); tr.appendChild(td4);

table.appendChild(tr); for (var i = 0; i < size; i++){ var tr = document.createElement('tr');

var td1 = document.createElement('td'); var td2 = document.createElement('td'); var td3 = document.createElement('td'); var td4 = document.createElement('td');

var text1 = document.createTextNode(Object.keys(occurrence(input_data))[i]); var text2 = document.createTextNode(occurrence(input_data)[Object.keys(occurrence(input_data))[i]].length); var text3 = document.createTextNode(relFreqArray[i].toFixed(4)); var text4 = document.createTextNode(cumsum[i].toFixed(4));

td1.appendChild(text1); td2.appendChild(text2); td3.appendChild(text3); td4.appendChild(text4);

tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); tr.appendChild(td4);

table.appendChild(tr); } document.getElementById('table_output').appendChild(table);

//output results //document.getElementById('ss').innerHTML = ss.toFixed(2); }