Skip to contents

Overview

The ping package creates two main registries:

  • Club registry: a snapshot of all AFTT clubs and their metadata.
  • Players registry (Messieurs): a snapshot of all players with their points and rankings

Each registry can be updated once per month (one recording per month maximum otherwise overwritten) knowing players’ points are updated monthly (first days of the month) in the AFTT. AFTT clubs are likely updated yearly.

For both registries a latest snapshot, and an archive containing all past snapshots are stored.


How the registries are built

The registries are generated by running two scripts build.club.registry.R and build.players.registry.R (available within the data-raw folder available on github repository)

build.club.registry.R creates a new club registry snapshot from AFTT annuaire https://data.aftt.be/annuaire/membres.php. The process involves

  • fetching club indices, names, and provinces (one web page)
  • scraping postal addresses and team counts from every club’s page.
  • Merging into a consolidated club registry

build.club.registry.R calls the function: get.club.list.R

build.players.registry.R retrieves the Messieurs player list for every club in current club_registry. Iterate through provinces then clubs. Enriches the data with classement letters/numbers separation and within-province ranking.

build.players.registry.R calls the functions: get.club.player.list.m


What the outputs look like

Club registry

Two datasets are created:

  • club_registry
    The latest snapshot (a data frame).

  • club_registry_archive
    A named list of past snapshots.
    Each element is named "YYYY_MM" and contains a data frame with the same structure as the latest snapshot.

See club_registry.R

Players registry (Messieurs)

Similarly:

  • players_m
    The latest snapshot (a data frame).

  • players_m_archive
    A named list of past snapshots, also named "YYYY_MM".


Loading the registries

All registry datasets are stored in the ‘data’ folder, included in the installed package and made available to users.

Users can load the latest snapshots with:

data("club_registry", package = "PingMeUp")
nrow(club_registry)
## [1] 516
#For a specific province
head(club_registry[club_registry$province=="N",])
##     indice                   label province
## 351   N021 N021 - Namur St-Georges        N
## 352   N023    N023 - Forbot Dinant        N
## 353   N025           N025 - Mickey        N
## 354   N027           N027 - E.B.S.        N
## 355   N028        N028 - Les Isnes        N
## 356   N034         N034 - Mazy-Spy        N
##                                        address equipes_messieurs equipes_dames
## 351      Rue Saint Donat, 56 - 5002 St Servais                 4             0
## 352    Rue Arthur Defoin, 215 - 5500 Anseremme                11             0
## 353           Rue Vigneron 23 - 5060 FALISOLLE                12             2
## 354    Rue de Falisolle, 73 - 5060 SAMBREVILLE                11             0
## 355               Rue Jennay, 108 - 5032 ISNES                 6             1
## 356 Rue St-Martin 21 - 5190 JEMEPPE-SUR-SAMBRE                 6             0

or for players:

data("players_m", package = "PingMeUp")
names(players_m)
##  [1] "position"           "position_bis"       "nom"               
##  [4] "classement"         "club"               "match"             
##  [7] "points"             "licence"            "prov"              
## [10] "classement_lettre"  "classement_chiffre" "position_bis_p"
players_m[order(players_m$position_bis)[1:5],]
##              position position_bis                               nom classement
## L.L119.1          001          001                RASSENFOSSE ADRIEN         A3
## L.L323.1          002          002                    ALLEGRO MARTIN         A1
## A.A176.1          003          003 ROBINOT QUENTIN (Joueur étranger)        As5
## OVL.OVL032.1      003          003                   NUYTINCK CEDRIC         A2
## L.L323.2          004          004                   LAMBIET FLORENT         A4
##                club match points licence prov classement_lettre
## L.L119.1       L119    99 3037.5  140691    L                 A
## L.L323.1       L323    99 3007.5  110538    L                 A
## A.A176.1       A176    29 2987.4  531030    A                 A
## OVL.OVL032.1 OVL032    99 2990.0  504553  OVL                 A
## L.L323.2       L323    99 2970.0  120001    L                 A
##              classement_chiffre position_bis_p
## L.L119.1                     99              1
## L.L323.1                     99              2
## A.A176.1                     99              1
## OVL.OVL032.1                 99              1
## L.L323.2                     99              3

The archived versions are obtained with

data("club_registry_archive", package = "PingMeUp")
data("players_m_archive", package = "PingMeUp")

or for specific snapshots once the dataset is loaded:

club_registry_archive[["2026_04"]]
players_m_archive[["2026_04"]]