Title: | Utility Functions for Volleyball Scout Files |
---|---|
Description: | Common utility functions shared across various volleyball scouting and data access packages. Functions in this package are likely to be mostly of interest to package developers, rather than end users. |
Authors: | Ben Raymond [aut, cre], Adrien Ickowicz [aut] |
Maintainer: | Ben Raymond <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.2.0 |
Built: | 2024-12-20 20:30:30 UTC |
Source: | https://github.com/openvolley/vscoututils |
file_meta
component of a datavolley objectCreate the file_meta
component of a datavolley object
dv_create_file_meta( file_type = "indoor", date_format = "%Y/%m/%d", generator_day, generator_idp, generator_prg, generator_release, generator_version, generator_name )
dv_create_file_meta( file_type = "indoor", date_format = "%Y/%m/%d", generator_day, generator_idp, generator_prg, generator_release, generator_version, generator_name )
file_type |
string: "indoor", "beach" |
date_format |
string: preferred date format |
generator_day |
datetime: date and time of file creation |
generator_idp , generator_prg , generator_release , generator_version , generator_name
|
string: information about the software that generated the file. If missing, defaults will be used |
A tibble
Create metadata component of a datavolley object
dv_create_meta( match, more, comments, result, teams, players_h, players_v, video, attacks, setter_calls, winning_symbols, data_type = "indoor", style = "default" )
dv_create_meta( match, more, comments, result, teams, players_h, players_v, video, attacks, setter_calls, winning_symbols, data_type = "indoor", style = "default" )
match |
tibble: as returned by |
more |
tibble: as returned by |
comments |
tibble: as returned by |
result |
tibble: as returned by |
teams |
tibble: as returned by |
players_h |
tibble: home team table as returned by |
players_v |
tibble: visiting team table as returned by |
video |
tibble: as returned by |
attacks |
tibble: as returned by |
setter_calls |
tibble: as returned by |
winning_symbols |
tibble: as returned by |
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A list
dv_create_meta(match = dv_create_meta_match(zones_or_cones = "Z"), more = dv_create_meta_more(), comments = dv_create_meta_comments(), teams = dv_create_meta_teams( team_ids = c("ardv", "badg"), teams = c("Aardvarks", "Badgers")))
dv_create_meta(match = dv_create_meta_match(zones_or_cones = "Z"), more = dv_create_meta_more(), comments = dv_create_meta_comments(), teams = dv_create_meta_teams( team_ids = c("ardv", "badg"), teams = c("Aardvarks", "Badgers")))
attacks
metadata component of a datavolley objectThe attacks
metadata component of a datavolley object describes the attack combination codes
dv_create_meta_attack_combos( code, start_zone, side = NA_character_, tempo, description, colour = NA_character_, start_coordinate = NA_integer_, target_attacker )
dv_create_meta_attack_combos( code, start_zone, side = NA_character_, tempo, description, colour = NA_character_, start_coordinate = NA_integer_, target_attacker )
code |
character: vector of two-character (uppercase) attack codes. Attack codes must start with C, G, I, J, L, P, V, W, X, Y, or Z |
start_zone |
integer: vector of start zones |
side |
character: vector of L, C, R |
tempo |
character: vector of tempo codes F, H, M, N, O, Q, T, U |
description |
character: vector of attack descriptions |
colour |
character: vector of colour codes (maybe) used when plotting, in "#RRGGBB" format |
start_coordinate |
integer: vector of start locations as single-index coordinates (see e.g. |
target_attacker |
character: vector of single-character codes giving the target attacker: B (back/right side attacker), C (centre), F (front/left side attacker), P (pipe), S (setter attack) |
A tibble
comments
metadata component of a datavolley objectCreate the comments
metadata component of a datavolley object
dv_create_meta_comments( summary, match_description, home_coach_comments, visiting_coach_comments )
dv_create_meta_comments( summary, match_description, home_coach_comments, visiting_coach_comments )
summary , match_description , home_coach_comments , visiting_coach_comments
|
string: comments |
A tibble
match
metadata component of a datavolley objectCreate the match
metadata component of a datavolley object
dv_create_meta_match( date, season, league, phase, home_away, day_number, match_number, regulation = "indoor rally point", zones_or_cones )
dv_create_meta_match( date, season, league, phase, home_away, day_number, match_number, regulation = "indoor rally point", zones_or_cones )
date |
Date or datetime: match date and time |
season |
string: season name |
league |
string: league name |
phase |
string: match phase (e.g. "Playoffs", "Finals") |
home_away |
string: typically "Home" or "Away" |
day_number , match_number
|
numeric: day and match number |
regulation |
string: "indoor sideout", "indoor rally point" (default), or "beach rally point" |
zones_or_cones |
string: are attacks being scouted with "zones" or "cones" (or "Z" or "C") |
A tibble
match_id
metadata component of a datavolley objectThe match_id
is generated from the match
and teams
components of the mx
object, so ensure that these are fully populated before generating a match_id
dv_create_meta_match_id(mx)
dv_create_meta_match_id(mx)
mx |
list: the |
A string
more
metadata component of a datavolley objectCreate the more
metadata component of a datavolley object
dv_create_meta_more(referees, spectators, receipts, city, arena, scout)
dv_create_meta_more(referees, spectators, receipts, city, arena, scout)
referees , spectators , receipts , city , arena
|
string: match descriptors |
scout |
string: name of the scout |
A tibble
players_h
or players_v
metadata component of a datavolley objectCreate the players_h
or players_v
metadata component of a datavolley object
dv_create_meta_players(players)
dv_create_meta_players(players)
players |
data.frame: the team roster, as a data.frame. |
A tibble
result
metadata component of a datavolley objectNote that the returned object has some NA values. It is expected that the user will call dv_update_meta()
on the full datavolley
object, which will update entries in this metadata component.
dv_create_meta_result( home_team_scores = NA_integer_, visiting_team_scores = NA_integer_, durations = NA_integer_ )
dv_create_meta_result( home_team_scores = NA_integer_, visiting_team_scores = NA_integer_, durations = NA_integer_ )
home_team_scores |
integer: vector of home team scores in each set |
visiting_team_scores |
integer: vector of visiting team scores in each set |
durations |
integer: vector of set durations (in minutes). If not provided, these will be calculated from video times by |
A tibble
sets
(setter calls) metadata component of a datavolley objectCreate the sets
(setter calls) metadata component of a datavolley object
dv_create_meta_setter_calls( code, description, colour = NA_character_, start_coordinate = NA_integer_, mid_coordinate = NA_integer_, end_coordinate = NA_integer_, path = NA_character_, path_colour = NA_character_ )
dv_create_meta_setter_calls( code, description, colour = NA_character_, start_coordinate = NA_integer_, mid_coordinate = NA_integer_, end_coordinate = NA_integer_, path = NA_character_, path_colour = NA_character_ )
code |
character: vector of two-character (uppercase) setter call codes. Setter call codes must start with K |
description |
character: vector of setter call descriptions |
colour |
character: vector of colour codes (maybe) used when plotting, in "#RRGGBB" format |
start_coordinate , mid_coordinate , end_coordinate
|
integer: vector of start/mid/end locations as single-index coordinates (see e.g. |
path |
character: vector of paths, each a comma-separated list of single-index coordinates |
path_colour |
character: vector of colour codes in "#RRGGBB" format |
A tibble
teams
metadata component of a datavolley objectdv_create_meta_teams2
provides an alternative parameterization with home and visiting team information specified separately.
dv_create_meta_teams( team_ids, teams, sets_won, coaches, assistants, shirt_colours ) dv_create_meta_teams2( home_team_id, home_team, home_coach, home_assistant, home_shirt_colour, visiting_team_id, visiting_team, visiting_coach, visiting_assistant, visiting_shirt_colour, sets_won )
dv_create_meta_teams( team_ids, teams, sets_won, coaches, assistants, shirt_colours ) dv_create_meta_teams2( home_team_id, home_team, home_coach, home_assistant, home_shirt_colour, visiting_team_id, visiting_team, visiting_coach, visiting_assistant, visiting_shirt_colour, sets_won )
team_ids |
character: (required) 2-element vector of home and visiting team IDs |
teams |
character: (required) 2-element vector of home and visiting team names |
sets_won |
integer: 2-element vector of the number of sets won by the home team and visiting team |
coaches |
character: 2-element vector of home and visiting team coach names |
assistants |
character: 2-element vector of home and visiting team assistant coach names |
shirt_colours |
character: 2-element vector of home and visiting team shirt colours in "#RRGGBB" format |
home_team_id , visiting_team_id
|
string: home and visiting team IDs |
home_team , visiting_team
|
string: home and visiting team names |
home_coach , visiting_coach
|
string: home and visiting coach name |
home_assistant , visiting_assistant
|
string: home and visiting assistant coach name |
home_shirt_colour , visiting_shirt_colour
|
string: home and visiting shirt colours in "#RRGGBB" format |
A tibble
video
metadata component of a datavolley objectCreate the video
metadata component of a datavolley object
dv_create_meta_video(video_file)
dv_create_meta_video(video_file)
video_file |
character: path to video file. More than one is allowed, but anything other than the first might be ignored by some functions |
A data.frame
Decode evaluation codes
dv_decode_evaluation( skill, evaluation_code, table, data_type = "indoor", style = "default" )
dv_decode_evaluation( skill, evaluation_code, table, data_type = "indoor", style = "default" )
skill |
character: full skill names (Serve, Reception, etc) |
evaluation_code |
character: evaluation codes (#, +, etc) |
table |
data.frame: optional table with columns |
data_type |
string: "indoor" or "beach" |
style |
string: "default", "volleymetrics" |
A character vector of evaluations, with a "dvmessages" attribute if any issues were found
dv_decode_evaluation("Serve", "#") dv_decode_evaluation("Attack", "!")
dv_decode_evaluation("Serve", "#") dv_decode_evaluation("Attack", "!")
Decode number of players
dv_decode_num_players( skill, num_players_code, table, data_type = "indoor", style = "default" )
dv_decode_num_players( skill, num_players_code, table, data_type = "indoor", style = "default" )
skill |
character: full skill names (Serve, Reception, etc) |
num_players_code |
character: number of players codes (0, 1, etc) |
table |
data.frame: optional table with columns |
data_type |
string: "indoor" or "beach" |
style |
string: "default", "volleymetrics" |
A character vector of number of players, with a "dvmessages" attribute if any issues were found
dv_decode_num_players("Reception", 7) dv_decode_num_players("Attack", 3, data_type = "beach")
dv_decode_num_players("Reception", 7) dv_decode_num_players("Attack", 3, data_type = "beach")
Decode skill subtypes
dv_decode_skill_subtype( skill, skill_subtype_code, evaluation, table, data_type = "indoor", style = "default" )
dv_decode_skill_subtype( skill, skill_subtype_code, evaluation, table, data_type = "indoor", style = "default" )
skill |
character: full skill names (Serve, Reception, etc) |
skill_subtype_code |
character: subtype codes (H, P, etc) |
evaluation |
character: skill evaluations (Ace, Perfect pass, etc). Only used to make small adjustments for certain scouting styles, which will be skipped if |
table |
data.frame: optional table with columns |
data_type |
string: "indoor" or "beach" |
style |
string: "default", "volleymetrics" |
A character vector of skill subtypes, with a "dvmessages" attribute if any issues were found
dv_decode_skill_subtype("Reception", "M") dv_decode_skill_subtype("Attack", "P") dv_decode_skill_subtype("Dig", "Q")
dv_decode_skill_subtype("Reception", "M") dv_decode_skill_subtype("Attack", "P") dv_decode_skill_subtype("Dig", "Q")
Decode skill type (tempo) codes
dv_decode_skill_type( skill, skill_type_code, table, data_type = "indoor", style = "default" )
dv_decode_skill_type( skill, skill_type_code, table, data_type = "indoor", style = "default" )
skill |
character: full skill names (Serve, Reception, etc) |
skill_type_code |
character: skill type (tempo) codes (Q, M, H, etc) |
table |
data.frame: optional table with columns |
data_type |
string: "indoor" or "beach" |
style |
string: "default", "volleymetrics" |
A character vector of skill types, with a "dvmessages" attribute if any issues were found
dv_decode_skill_type("Serve", "Q") dv_decode_skill_type("Attack", "Z")
dv_decode_skill_type("Serve", "Q") dv_decode_skill_type("Attack", "Z")
Decode special codes
dv_decode_special_code( skill, special_code, evaluation, table, data_type = "indoor", style = "default" )
dv_decode_special_code( skill, special_code, evaluation, table, data_type = "indoor", style = "default" )
skill |
character: full skill names (Serve, Reception, etc) |
special_code |
character: special codes (Z, U, etc) |
evaluation |
character: skill evaluations (Ace, Perfect pass, etc) |
table |
data.frame: optional table with columns |
data_type |
string: "indoor" or "beach" |
style |
string: "default", "volleymetrics" |
A character vector of special code interpretations, with a "dvmessages" attribute if any issues were found
dv_decode_special_code("Reception", "P", NA_character_) ## evaluation is irrelevant here dv_decode_special_code("Attack", "N", "Error") dv_decode_special_code("Attack", "N", "Winning attack") ## different interpretation if not an error dv_decode_special_code("Attack", "C", "Winning attack") ## "C" is not valid for winning attack dv_decode_special_code("Attack", "C", "Positive, good attack") ## but is for attacks in play dv_decode_special_code("Attack", "Q", "Positive, good attack") ## this is invalid everywhere
dv_decode_special_code("Reception", "P", NA_character_) ## evaluation is irrelevant here dv_decode_special_code("Attack", "N", "Error") dv_decode_special_code("Attack", "N", "Winning attack") ## different interpretation if not an error dv_decode_special_code("Attack", "C", "Winning attack") ## "C" is not valid for winning attack dv_decode_special_code("Attack", "C", "Positive, good attack") ## but is for attacks in play dv_decode_special_code("Attack", "Q", "Positive, good attack") ## this is invalid everywhere
Default attack combination codes table
dv_default_attack_combos( data_type = "indoor", style = "default", simplified = TRUE )
dv_default_attack_combos( data_type = "indoor", style = "default", simplified = TRUE )
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
simplified |
logical: if |
A tibble
Default number of players table
dv_default_num_players(data_type = "indoor", style = "default")
dv_default_num_players(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
Default scouting (type and evaluation for each skill) table
dv_default_scouting_table(data_type = "indoor", style = "default")
dv_default_scouting_table(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
Default setter calls table
dv_default_setter_calls(data_type = "indoor", style = "default")
dv_default_setter_calls(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
Default skill evaluation table
dv_default_skill_evaluations(data_type = "indoor", style = "default")
dv_default_skill_evaluations(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
Default skill_subtype (type of hit) table
dv_default_skill_subtypes(data_type = "indoor", style = "default")
dv_default_skill_subtypes(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
Default skill_type (tempo) table
dv_default_skill_types(data_type = "indoor", style = "default")
dv_default_skill_types(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
Default special codes table
dv_default_special_codes(data_type = "indoor", style = "default")
dv_default_special_codes(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
Default winning symbols table
dv_default_winning_symbols(data_type = "indoor", style = "default")
dv_default_winning_symbols(data_type = "indoor", style = "default")
data_type |
string: "indoor", "beach" |
style |
string: conventions "default", "volleymetrics", "german" |
A tibble
insert dummy rally rows for score corrections. Note that this will not adjust the setter position in the dummy rows nor insert intermediate setter positions (but will insert one setter position code per team at the start of the returned data frame, if needed)
for a substitution, insert the setter assignment code (*PXX or aPXX) if it was the on-court setter that was substituted
insert the setter position codes at the start of the rally. These should not be inserted on the first point of a set, in that situation they should be in the >LUp codes - so for the first point, make sure that the last_home_setter_position
and last_visiting_setter_position
are passed as their starting values)
dv_expand_rally_codes( rx, last_home_setter_position, last_home_setter, last_visiting_setter_position, last_visiting_setter, last_home_team_score, last_visiting_team_score, keepcols, meta, rebuild_codes = TRUE, do_warn = TRUE )
dv_expand_rally_codes( rx, last_home_setter_position, last_home_setter, last_visiting_setter_position, last_visiting_setter, last_home_team_score, last_visiting_team_score, keepcols, meta, rebuild_codes = TRUE, do_warn = TRUE )
rx |
data.frame: with at least the columns:
|
last_home_setter_position , last_visiting_setter_position
|
integer: home and visiting setter positions in the previous rally |
last_home_setter , last_visiting_setter
|
integer: home and visiting setter jersey numbers in the previous rally |
last_home_team_score , last_visiting_team_score
|
integer: home and visiting team scores at the end of the previous rally |
keepcols |
character: names of the columns in |
meta |
list: meta component from a datavolley object |
rebuild_codes |
logical: if |
do_warn |
logical: if |
rx
potentially with additional rows inserted. Note that the added rows might have fractional point_id
values, in which case you will need to renumber all point_id
s in the match to integers afterwards
Returns the general file type (format), but does not differentiate e.g. indoor from beach. Type is based on the file extension and a minimal check of the contents, but without fully parsing the file. For dv_file_data_type
the type is based only on a minimal check of the contents (provided in x
)
dv_file_type(filename, error_on_unknown = FALSE) dv_file_data_type(x, error_on_unknown = FALSE)
dv_file_type(filename, error_on_unknown = FALSE) dv_file_data_type(x, error_on_unknown = FALSE)
filename |
character: paths to files. Files that do not exist will be classified as "unknown" type |
error_on_unknown |
logical: if |
x |
character: a character vector with the contents of a scout file |
Character vector containing:
"dvw"
"vsm"
"psvb"
"hxml"
"unknown"
## Not run: library(ovdata) dv_file_type(ovdata_example("190301_kats_beds")) ## dvw x <- readLines(ovdata_example("190301_kats_beds"), warn = FALSE) dv_file_data_type(x) dv_file_type(ovdata_example("clickscout")) ## dvw dv_file_data_type(readLines(ovdata_example("clickscout"), warn = FALSE)) dv_file_type(ovdata_example("2017_AVL_mens_HEAT_vs_UTSSU")) ## psvb dv_file_data_type(readLines(ovdata_example("2017_AVL_mens_HEAT_vs_UTSSU"), warn = FALSE)) dv_file_type(tempfile(fileext = ".dvw")) ## unknown (contents not as expected for dvw) dv_file_data_type(readLines(tempfile(fileext = ".dvw"))) ## "unknown", with warning ## End(Not run)
## Not run: library(ovdata) dv_file_type(ovdata_example("190301_kats_beds")) ## dvw x <- readLines(ovdata_example("190301_kats_beds"), warn = FALSE) dv_file_data_type(x) dv_file_type(ovdata_example("clickscout")) ## dvw dv_file_data_type(readLines(ovdata_example("clickscout"), warn = FALSE)) dv_file_type(ovdata_example("2017_AVL_mens_HEAT_vs_UTSSU")) ## psvb dv_file_data_type(readLines(ovdata_example("2017_AVL_mens_HEAT_vs_UTSSU"), warn = FALSE)) dv_file_type(tempfile(fileext = ".dvw")) ## unknown (contents not as expected for dvw) dv_file_data_type(readLines(tempfile(fileext = ".dvw"))) ## "unknown", with warning ## End(Not run)
Extract player metadata by team and jersey number
dv_get_player_meta(team, number, meta)
dv_get_player_meta(team, number, meta)
team |
character: vector of "*" or "a" |
number |
integer: vector of player jersey numbers |
meta |
list: the |
A data frame with columns "team" and plus those in meta
, sorted to match the inputs team
and number
Add green codes to the scouted codes from a rally
dv_green_codes(code, meta, do_warn = TRUE)
dv_green_codes(code, meta, do_warn = TRUE)
code |
character: a character vector of scouted codes for a rally. The codes must be non-compound but need only be the first 6 characters (i.e. up to and including the evaluation_code). The code vector must have a valid point code at the end (the |
meta |
list: meta component from a datavolley object |
do_warn |
logical: if |
A character vector of codes. This will be the same as the input code
vector, but potentially with additional green code entries (*$$&H#
, *$$&H=
, a$$&H#
, a$$&H=
) inserted before the last entry
This function will insert setting actions prior to attacks, where those attacks do not already have a set scouted. The sets are assigned to the setter on court for that team. It is therefore possible to scout a match, only manually scouting the setting actions where they were made by a player other than the designated setter. The remaining setting actions (made by the designated setter) can be filled in using this function, making the live scouting a little more efficient. Note, however, that automatically-inserted sets do not have the full information that can be included when scouting manually, including setter calls (but see the note on the set_call_table
parameter) and location of the set.
dv_insert_sets( x, no_set_attacks = c("PP", "P2", "PR"), phase_select = "Reception", default_set_evaluation = "+", attack_rows, set_call_table )
dv_insert_sets( x, no_set_attacks = c("PP", "P2", "PR"), phase_select = "Reception", default_set_evaluation = "+", attack_rows, set_call_table )
x |
datavolley: datavolley object as returned by |
no_set_attacks |
character: vector of attack codes for which we will not automatically insert sets (e.g. setter tips, overpass attacks) |
phase_select |
character: play phase(s) of attacks to consider. One or more of "Reception", "Transition" |
default_set_evaluation |
string: the default evaluation code for a set (used unless the attack was against 0 or 1 blockers, in which case it gets "#") |
attack_rows |
integer: a vector of row numbers of attacks for which sets should be inserted. Automatically calculated if not provided |
set_call_table |
data.frame: a data.frame with columns |
A modified copy of x
## Not run: x <- dv_read(dv_example_file()) sum(plays(x)$skill == "Set", na.rm = TRUE) x <- dv_insert_sets(x) sum(plays(x)$skill == "Set", na.rm = TRUE) ## End(Not run)
## Not run: x <- dv_read(dv_example_file()) sum(plays(x)$skill == "Set", na.rm = TRUE) x <- dv_insert_sets(x) sum(plays(x)$skill == "Set", na.rm = TRUE) ## End(Not run)
Find attacks for which we could insert missing setting actions
dv_insert_sets_check( x, no_set_attacks = c("PP", "P2", "PR"), phase_select = "Reception" )
dv_insert_sets_check( x, no_set_attacks = c("PP", "P2", "PR"), phase_select = "Reception" )
x |
datavolley: datavolley object as returned by |
no_set_attacks |
character: vector of attack codes for which we will not automatically insert sets (e.g. setter tips, overpass attacks) |
phase_select |
character: play phase(s) of attacks to consider. One or more of "Reception", "Transition" |
The row numbers of attacks in the plays
component of x, for which sets could be inserted
Insert technical timeouts
dv_insert_technical_timeouts(x, at, data_type)
dv_insert_technical_timeouts(x, at, data_type)
x |
datavolleyplays: the plays component of a datavolley object as returned by |
at |
list: (optional) a two-element list can be supplied, giving the scores at which technical timeouts will be inserted for sets 1–4, and set 5 or golden sets. If not provided, technical timeouts are inserted at points 8 and 16 of sets 1–4 (for indoor files) or when the team scores sum to 21 in sets 1–2 (beach) |
data_type |
string: "indoor" or "beach". If not provided, a guess will be made as to whether |
A modified copy of x
These elements will be updated:
the played
, duration
, and score-related columns in x$meta$result
the sets_won
and won_match
columns in x$meta$teams
the starting positions and substitutions in x$meta$players_h
and x$meta$players_v
dv_update_meta(x)
dv_update_meta(x)
x |
datavolley: as returned by e.g. |
A modified copy of x
Define the interpretation of errortypes associated with events.
pv_default_errortypes(data_type)
pv_default_errortypes(data_type)
data_type |
string: "indoor" or "beach" |
a tibble with columns "skill", "errortype", and "evaluation"
pv_default_errortypes("beach")
pv_default_errortypes("beach")
Define the interpretation of eventgrades associated with events.
pv_default_eventgrades(data_type)
pv_default_eventgrades(data_type)
data_type |
string: "indoor" or "beach" |
a tibble with columns "skill", "eventgrade", "evaluation_code" (the equivalent DataVolley code, if there is one), "evaluation", and "win_loss"
pv_default_eventgrades("beach")
pv_default_eventgrades("beach")
Lookup tables for Perana Sports database codes
pv_default_eventtypes(data_type)
pv_default_eventtypes(data_type)
data_type |
string: "indoor" or "beach" |
A tibble
Define the interpretation of subevents associated with events
pv_default_subevents(data_type)
pv_default_subevents(data_type)
data_type |
string: "indoor" or "beach" |
a tibble with columns "skill", "subevent", and "interpretation"
pv_default_subevents("beach")
pv_default_subevents("beach")
Define the interpretation of subevents2 associated with events
pv_default_subevents2(data_type)
pv_default_subevents2(data_type)
data_type |
string: "indoor" or "beach" |
a tibble with columns "skill", "subevent2", and "interpretation"
pv_default_subevents("beach")
pv_default_subevents("beach")
Parse a ballstring found in Perana Sports files
pv_parse_ballstring(z, which = "start")
pv_parse_ballstring(z, which = "start")
z |
character: vector of ballstring entries |
which |
string: "start", "mid", or "end". Will be used to name the columns of the returned data.frame |
A data.frame with columns start_coordinate_x
and start_coordinate_y
(or mid_*
or end_*
, depending on which
)
pv_parse_ballstring(c("51.25, 143.33"))
pv_parse_ballstring(c("51.25, 143.33"))
Utility Functions for Volleyball Scout Files
Maintainer: Ben Raymond [email protected]
Authors:
Adrien Ickowicz