-
Notifications
You must be signed in to change notification settings - Fork 0
Datasets
Voor dit project heb ik twee datasets gebruikt. 1 dataset om het cleanen te begrijpen waar er een survey onder de studenten van de tech track een aantal vragen beantwoordden. Deze data moest ik vervolgens door middel van code cleanen. Op het moment dat ik dit schrijf heb ik alleen dat ik de tekst allemaal lowercase kan maken. Als ik meer tijd had, was dat mijn prioriteit geweest.
Voor mijn API "dataset" heb ik gebruik gemaakt van de PokeAPI. Hierbij heb ik de data opgehaald uit de API en vervolgens gefilterd. Ook heb ik sommige data nog aangepast.
Data heb ik via de volgende code opgehaald:
// Survey:
fetch("./dataset_raw.json")
.then(function (response) {
// The JSON data will arrive here
return response.json();
})
// API:
fetch("https://pokeapi.co/api/v2/pokemon?limit=9&offset=0")
.then(response => response.json())Ik heb op twee manieren de data gecleaned, alle tekst naar lowercase en lege antwoorden vervangen door "Geen antwoord gegeven":
function dataToLowerCase(obj) {
let lower;
let cleanedData = [];
for (let i = 0; i < obj.length; i++) {
Object.keys(obj[i]).forEach(key => {
if (typeof obj[i][key] === "string") {
lower = obj[i][key].toLowerCase();
cleanedData.push(lower);
}
});
}
console.table("To lowercase: ", cleanedData);
}
function replaceBlanks(obj) {
let repBlanksRaw;
let replaceBlanks = [];
for (let i = 0; i < obj.length; i++) {
Object.keys(obj[i]).forEach(key => {
if (typeof obj[i][key] === "string") {
if(obj[i][key] < 1){
repBlanksRaw = obj[i][key].toString().replace("", "Geen antwoord gegeven");
replaceBlanks.push(repBlanksRaw);
}
else {
repBlanksRaw = obj[i][key];
replaceBlanks.push(repBlanksRaw);
}
}
});
}
console.table("Replace blanks: v.b. entry 301", replaceBlanks);
}Ook heb ik alle keys hernoemd met de volgende code:
function renameKey(obj, oldKey, newKey) {
delete Object.assign(obj, {
[newKey]: obj[oldKey]
})[oldKey];
}
function renameKeys(data) {
// Renames long keys to simple words
data.forEach(obj => renameKey(obj, "Wat is je favoriete windrichting?", "windrichting"));
data.forEach(obj => renameKey(obj, "Wat is je favoriete soort huisdier?", "huisdier"));
data.forEach(obj => renameKey(obj, "Wat is je oogkleur?", "oogkleur"));
data.forEach(obj => renameKey(obj, "Op een schaal van 1 tot 10, hoeveel zin heb je in de Tech Track?", "motivatie"));
data.forEach(obj => renameKey(obj, "Kies zelf of je deze vraag beantwoord.", "upToYou"));
data.forEach(obj => renameKey(obj, "Wat is je favoriete datum?", "date"));
data.forEach(obj => renameKey(obj, "Wat is je favoriete datum, maar nu in tekst!", "dateText"));
data.forEach(obj => renameKey(obj, "Wat is je favoriete zuivelproduct?", "zuivel"));
data.forEach(obj => renameKey(obj, "Welke kleur kledingstukken heb je aan vandaag? (Meerdere antwoorden mogelijk natuurlijk...)", "kleding"));
data.forEach(obj => renameKey(obj, "Op welke verdieping van het TTH studeer je het liefst?", "verdieping"));
data.forEach(obj => renameKey(obj, "Wat wil je worden als je groot bent?", "droombaanNu"));
data.forEach(obj => renameKey(obj, "Wat wilde je later worden als je groot bent, maar nu toen je zelf 8 jaar was.", "droombaan8"));
data.forEach(obj => renameKey(obj, "Kaas is ook een zoogdier?", "kaas"));
data.forEach(obj => renameKey(obj, "Als je later een auto zou kopen, van welk merk zou deze dan zijn?", "auto"));
}Voor mijn PokeAPI applicatie heb ik nog de base stats per pokemon (in 1 totaal 6 stats) opgeteld tot een totaal base stats:
function CountStats(pokemons) {
let starterMons = [];
pokemons.forEach(e => {
// For every pokemon/object in the array
const stats = e.stats;
let valueHolder = [];
let totalValueHolder = 0;
stats.forEach(total => {
// Counts up values of array to a total
const reducer = (previousValue, currentValue) => previousValue + currentValue;
// Push the stats into a holder and add them up, then set into another holder
valueHolder.push(total.base_stat);
totalValueHolder = valueHolder.reduce(reducer);
});
// Push the name, stats and the total of the stats into a new array
starterMons.push({
Naam: e.naam,
stats: e.stats,
Totaal: totalValueHolder
});
});
console.table(starterMons);
}π Home
Doel
Proces
Peer review
Rubric
Wat had ik nog willen maken?