
SIHF Skater faceoffs by zone (offensive, neutral, defensive) per game
Source:R/sihf.R
sihf_player_faceoffs_by_zone_per_game.RdSkater faceoffs by zone (offensive, neutral, defensive) per game: taken, won and lost.
Reads the Swiss Ice Hockey Federation statistics API (data.sihf.ch, keyless JSON). SIHF keys a
season by its END year (2026 = 2025-26). An unknown season, league_id or phase_id is never an
error upstream (SIHF silently answers another one), so every table answer is checked against the
body's own filter echo and refused when it differs. Every request is spaced at least one second
from the last one to the host.
Usage
sihf_player_faceoffs_by_zone_per_game(
season,
league_id = 1L,
phase_id = NULL,
language = "en"
)Arguments
- season
Required. Season by its END year (2026 = 2025-26). A season SIHF does not have raises
fastRhockey_no_dataerror (the API itself silently answers another one).- league_id
SIHF league id: 1 = National League, 2 = Swiss League, 100 = MyHockey League, 3 = 1. Liga, 43 = SWHL B, 113 = U21-Elit (the body's League filter lists them). An id SIHF does not have for the season raises
fastRhockey_no_dataerror.- phase_id
SIHF phase id (regular season, a playoff round, ...; the body's Phase filter lists them).
NULL= no phase filter: the season summary over every phase.- language
Response language. Only part of the body is translated: status, position and penalty names stay German.
Value
A fastRhockey_data tibble with 19 columns. A zero-row tibble with these columns when the
payload holds no rows.
| col_name | type | description |
| season | integer | Season by its END year (2026 = 2025-26), from the body's echo of the Season filter. |
| phase_id | integer | SIHF phase id (regular season, a playoff round, ...); null unless a phase filter is passed. |
| rank | integer | Rank in the table; null on a summary row, and on a goaltender below the qualification line. |
| player | character | Player name as SIHF prints it, last name first (e.g., "Dahlbeck Klas"); season tables carry no player id. |
| team_id | integer | SIHF team id (integer join key); null on a summary row (the pseudo-team 100000). |
| team_name | character | Team display name as SIHF publishes it; "Durchschnitt" on the league-average row, "Total" on the attendance total row. |
| team_acronym | character | Team abbreviation as SIHF publishes it (e.g., "HCD"); null on a summary row. |
| position | character | Position, German whatever the language (e.g., "Stürmer"); null when SIHF prints "-". |
| games_played | integer | Games played in the table's scope. |
| faceoffs_offensive_per_game | numeric | Faceoffs taken per game, offensive zone. |
| faceoffs_won_offensive_per_game | numeric | Faceoffs won per game, offensive zone. |
| faceoffs_lost_offensive_per_game | numeric | Faceoffs lost per game, offensive zone. |
| faceoffs_neutral_per_game | numeric | Faceoffs taken per game, neutral zone. |
| faceoffs_won_neutral_per_game | numeric | Faceoffs won per game, neutral zone. |
| faceoffs_lost_neutral_per_game | numeric | Faceoffs lost per game, neutral zone. |
| faceoffs_defensive_per_game | numeric | Faceoffs taken per game, defensive zone. |
| faceoffs_won_defensive_per_game | numeric | Faceoffs won per game, defensive zone. |
| faceoffs_lost_defensive_per_game | numeric | Faceoffs lost per game, defensive zone. |
| row_type | character | "data" for a regular row; "average" (league average) or "total" (attendance total) for a summary row SIHF mixes into the table. |
Errors
fastRhockey_no_data: SIHF answered 404 (unknown game), or ignored a requested season, league or phase and served another one.fastRhockey_bad_request: SIHF answered 400 / 422, or an argument is invalid.fastRhockey_asset_fetch: any other non-2xx answer or a dead connection after retries, an empty or unreadable body, a stub or redirect body, a table without its filter echo, a truncated table, or agameoverviewbody for another game.
See also
Other SIHF Functions:
sihf_game_goalie_stats(),
sihf_game_info(),
sihf_game_lineups(),
sihf_game_player_stats(),
sihf_game_team_stats(),
sihf_goalie_shootouts(),
sihf_goalie_shots(),
sihf_goalie_stats(),
sihf_goalie_wins(),
sihf_pbp(),
sihf_phases(),
sihf_player_faceoffs(),
sihf_player_faceoffs_by_zone(),
sihf_player_goals_assists(),
sihf_player_penalties(),
sihf_player_shootouts(),
sihf_player_shots(),
sihf_player_stats(),
sihf_player_time_on_ice(),
sihf_results(),
sihf_standings(),
sihf_team_attendance(),
sihf_team_faceoffs(),
sihf_team_faceoffs_by_zone(),
sihf_team_faceoffs_by_zone_per_game(),
sihf_team_goals(),
sihf_team_goals_by_position(),
sihf_team_penalties(),
sihf_team_penalty_kill(),
sihf_team_power_play(),
sihf_team_shootouts(),
sihf_team_shots()
Examples
# \donttest{
try(sihf_player_faceoffs_by_zone_per_game(season = 2026, league_id = 1))
#> ── SIHF Player Faceoffs By Zone Per Game Information from data.sihf.ch ─────────
#> ℹ Data updated: 2026-10-13 01:59:48 UTC
#> # A tibble: 427 × 19
#> season phase_id rank player team_id team_name team_acronym position
#> <int> <int> <int> <chr> <int> <chr> <chr> <chr>
#> 1 2026 NA 427 Zadina Filip 101151 HC Davos HCD Stürmer
#> 2 2026 NA 426 Rathgeb Yannick 103138 Fribourg… FRI Verteid…
#> 3 2026 NA 425 Puljujärvi Jes… 103140 Genève-S… GSHC Stürmer
#> 4 2026 NA 424 Dahlbeck Klas 101151 HC Davos HCD Verteid…
#> 5 2026 NA 423 Rutta Jan 103140 Genève-S… GSHC Verteid…
#> 6 2026 NA 422 Andersson Calle 101151 HC Davos HCD Verteid…
#> 7 2026 NA 421 Kapla Michael 103138 Fribourg… FRI Verteid…
#> 8 2026 NA 420 Knak Simon 101151 HC Davos HCD Stürmer
#> 9 2026 NA 419 Balcers Rudolfs 101139 ZSC Lions ZSC Stürmer
#> 10 2026 NA 418 Sörensen Marcus 103138 Fribourg… FRI Stürmer
#> # ℹ 417 more rows
#> # ℹ 11 more variables: games_played <int>, faceoffs_offensive_per_game <dbl>,
#> # faceoffs_won_offensive_per_game <dbl>,
#> # faceoffs_lost_offensive_per_game <dbl>, faceoffs_neutral_per_game <dbl>,
#> # faceoffs_won_neutral_per_game <dbl>, faceoffs_lost_neutral_per_game <dbl>,
#> # faceoffs_defensive_per_game <dbl>, faceoffs_won_defensive_per_game <dbl>,
#> # faceoffs_lost_defensive_per_game <dbl>, row_type <chr>
# }