Worldcup R Package | Fjelstul

The data frame matches became legendary. Then cards . Then goals . Then substitutions . Then penalty_shootouts . Each one a layer of geological time, preserving the sediment of football history: Miroslav Klose's 16 goals, the phantom "goal" of 1966, the 2002 South Korea run that statisticians still argue about.

install.packages("fjelstul") library(fjelstul) worldcup::matches %>% filter(tournament == "2022") %>% count(winner) Her screen filled with rows. Not just winners—but every pass, every foul, every heartbeat of the tournament. She didn't see a package. She saw a cathedral built by one person's stubborn refusal to let history vanish into PDFs. fjelstul worldcup r package

There was no data. Only noise.

That is the deep story of fjelstul . Not an R package. A promise that the beautiful game's data—like its memory—deserves to be free, clean, and forever reproducible. The data frame matches became legendary

It was 3:00 AM in Oslo, but Joshua Fjelstul wasn't sleeping. He was staring at a spreadsheet that had grown like a cancerous vine across his screen: 52 columns wide, 70,000 rows deep. It was the complete history of every foul, every offside call, every yellow card, and every substituted player in every FIFA World Cup match since 1930. Then substitutions

The problem started simply enough. He was a PhD student researching European legal integration, but the 2018 World Cup had just ended. France had beaten Croatia 4-2. And like millions of others, Joshua found himself arguing with a friend: "Who actually committed the most fouls in a single final?" The official FIFA records were PDFs. Broken links. Inconsistent languages. One year, they tracked "dangerous play"; the next, they switched to "unsporting behavior."

So Joshua built the fjelstul package.