Exploratory Data Analysis (EDA) Tool
Variable Distribution
Relationship between Variables
Summary Statistics
Enter your data in CSV (Comma-Separated Values) format. The first line must be the header row containing column names.
No numeric data available for statistics.
`; return; } let tableHTML = `| ${header} | `; }); tableHTML += `|
|---|---|
| ${statName} | `; numericHeaders.forEach(header => { const columnData = currentData.map(d => d[header]).filter(v => typeof v === 'number'); let statValue = 'N/A'; if (columnData.length > 0) { switch(statName) { case 'Count': statValue = columnData.length; break; case 'Mean': const sum = columnData.reduce((a, b) => a + b, 0); statValue = (sum / columnData.length).toFixed(2); break; case 'Median': const sorted = [...columnData].sort((a,b) => a - b); const mid = Math.floor(sorted.length / 2); statValue = sorted.length % 2 !== 0 ? sorted[mid] : ((sorted[mid - 1] + sorted[mid]) / 2).toFixed(2); break; case 'Min': statValue = Math.min(...columnData).toFixed(2); break; case 'Max': statValue = Math.max(...columnData).toFixed(2); break; case 'Std. Dev.': const mean = columnData.reduce((a, b) => a + b, 0) / columnData.length; const variance = columnData.map(x => Math.pow(x - mean, 2)).reduce((a,b) => a + b, 0) / columnData.length; statValue = Math.sqrt(variance).toFixed(2); break; } } tableHTML += `${statValue} | `; }); tableHTML += `
