data = {
const roger = await FileAttachment("roger.csv").csv();
const nadal = await FileAttachment("nadal.csv").csv();
const novak = await FileAttachment("novak.csv").csv();
const rawData = [roger, nadal, novak].map(p =>
p.map(({ season, name: event, result }) => ({
season: +season,
event: event === "Roland Garros" ? "French Open" : event,
result
}))
);
const years = [...new Set(rawData[0].map(d => d.season))].reverse().slice(4);
const eventOrder = ["Australian Open", "French Open", "Wimbledon", "US Open"];
const data = [];
years.forEach(year => {
eventOrder.forEach(event => {
const row = { year, event };
rawData.forEach((player, i) => {
const resultRow = player.filter(
d => d.season === year && d.event == event
)[0];
const result = resultRow != null ? resultRow.result : "NA";
row[['RF', 'RN', 'ND'][i]] = result;
});
data.push(row);
});
});
return data;
}