Introduction
This dataset is by Jonathan Moyer on the 2024 Volleyball National
League (VNL) statistics. There are multiple datasets by Moyer on the
2024 VNL, but I will be focusing on the Men’s VNL scorers dataset that
displays all points scored by attacking, blocking, and serving, along
with the team name and player for each statistic.
Links to R Package and Dataset
Exploring Janitor Package
The Janitor Package in R allows for quicker and easier data
exploration and cleaning. The functions I will be exploring in this
package are:
- cleaning_names()
- describe_class()
- taybl()
Cleaning
Using clean_names() function to clean dataframe names.
Cleaning Column Names
VNL2024Men_Scorers[1,]
## Name Team Tot_Pts Tot_Atk Tot_Block Tot_Serve
## 1 Conte ARG 121 101 11 9
Here are the names of the columns before cleaning.
VNL2024Men_Scorers <- clean_names(VNL2024Men_Scorers)
VNL2024Men_Scorers[1,]
## name team tot_pts tot_atk tot_block tot_serve
## 1 Conte ARG 121 101 11 9
This dataset is quite clean, however, the original column names
contained capitals. Using the clean_names() function, it took away the
capitals to allow for easier coding and consistency.
Cleaning
Using describe_class() to check the class of specific variables in
the dataset.
Describing Class
describe_class(VNL2024Men_Scorers$tot_pts)
## [1] "integer"
describe_class(VNL2024Men_Scorers$team)
## [1] "character"
This features allows me to look into the class of the variable, which
can be a quick and useful method for verifying.
Exploring
Using tabyl() function with adorn_ functions to enhance table.
Bottom 10 Points Scored
head(VNL2024Men_Scorers %>% tabyl(tot_pts, show_na = FALSE) %>% adorn_totals() %>% adorn_pct_formatting() %>% adorn_title(placement = "top"), 11)
## <NA>
## tot_pts n percent
## 0 61 20.7%
## 1 13 4.4%
## 2 6 2.0%
## 3 5 1.7%
## 4 4 1.4%
## 5 4 1.4%
## 6 4 1.4%
## 7 6 2.0%
## 8 5 1.7%
## 9 2 0.7%
Top 10 Points Scored
tail(VNL2024Men_Scorers %>% tabyl(tot_pts, show_na = FALSE) %>% adorn_totals() %>% adorn_pct_formatting() %>% adorn_title(), 11)
## <NA>
## 170 2 0.7%
## 178 2 0.7%
## 180 1 0.3%
## 185 2 0.7%
## 195 2 0.7%
## 196 1 0.3%
## 218 1 0.3%
## 225 1 0.3%
## 284 1 0.3%
## 320 1 0.3%
## Total 294 100.0%
Using head() and tail() to make it easier to display as an example,
using the tabyl() function allows for me to see the top and bottom
amount of points scored with the proportion of players achieveing those
scores. A decent percentage of players did not score any points during
the VNL.
Top VNL Scorer
## name team tot_pts tot_atk tot_block tot_serve
## 233 T. Stern SLO 320 265 24 31
Using the information from the tabyl() function, I found that Tonek
Stern of Slovenia scored the highest amount of points in the VNL. Though
they did not make it onto the podium (placed fourth), Stern made a huge
impact on get them that high in the rankings.
Reflection
Final Thoughts
Exploring this package with this dataset was very informational and
came with its challenges. Finding messy data was challenging for me, and
is something I want to focus on in the future. Because this data was
quite clean, it made it challenging to find functions in the package
that would produce interesting outcomes.
The name cleaning function makes it easy to create clean variable
names quickly, which I think will be very useful in future projects.
This goes along with the class describing function, where it may be very
useful for large datasets with many columns. The tabyl() function along
with the adorn_ add ons makes it extremely easy to make a clean table.
Next time, it will be extremely useful for categorical variables, as the
function is not quite meant for quantitative variables. I do, however,
find the percentages of people who got those amount of points
interesting because it revealed that a good amount of people did not
score any points in the VNL.
I enjoyed the challenge of figuring out funtions to use on my own and
will use what I have learned from this min-project for all my future
projects.
LS0tDQp0aXRsZTogIkNsZWFuaW5nIGFuZCBFeHBsb3JpbmcgRGF0YSBmcm9tIHRoZSAyMDI0IE1lbidzIFZOTCBTY29yaW5nIFN0YXRpc3RpY3MiDQphdXRob3I6ICJBZGRpc29uIEV2YW5zIg0KZGF0ZTogJ0ZlYnJ1YXJ5IDE2LCAyMDI2Jw0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRoZW1lOiBmbGF0bHkNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KLS0tDQoNCmBgYHtyIGVjaG8gPSBGQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoamFuaXRvcikNCmBgYA0KDQpgYGB7ciwgZWNobyA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRX0NClZOTDIwMjRNZW5fU2NvcmVycyA8LSByZWFkLmNzdigiVk5MMjAyNE1lbl9TY29yZXJzLmNzdiIpDQpgYGANCg0KYGBge3IsIGVjaG8gPSBGQUxTRSwgZmlnLmNhcCA9ICJbVk5MIE1hdGNoIC0gQ2FuYWRhIHZzLiBDdWJhXShodHRwczovL25vcmNlY2EubmV0LykiLCBvdXQud2lkdGggPSAnMTAwJSd9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiVk5MX2ltYWdlLmpwZyIpDQpgYGANCg0KIyBJbnRyb2R1Y3Rpb24NClRoaXMgZGF0YXNldCBpcyBieSBKb25hdGhhbiBNb3llciBvbiB0aGUgMjAyNCBWb2xsZXliYWxsIE5hdGlvbmFsIExlYWd1ZSAoVk5MKSBzdGF0aXN0aWNzLiBUaGVyZSBhcmUgbXVsdGlwbGUgZGF0YXNldHMgYnkgTW95ZXIgb24gdGhlIDIwMjQgVk5MLCBidXQgSSB3aWxsIGJlIGZvY3VzaW5nIG9uIHRoZSBNZW4ncyBWTkwgc2NvcmVycyBkYXRhc2V0IHRoYXQgZGlzcGxheXMgYWxsIHBvaW50cyBzY29yZWQgYnkgYXR0YWNraW5nLCBibG9ja2luZywgYW5kIHNlcnZpbmcsIGFsb25nIHdpdGggdGhlIHRlYW0gbmFtZSBhbmQgcGxheWVyIGZvciBlYWNoIHN0YXRpc3RpYy4NCg0KIyMgTGlua3MgdG8gUiBQYWNrYWdlIGFuZCBEYXRhc2V0DQotIFtKYW5pdG9yIFBhY2thZ2VdKGh0dHBzOi8vY3Jhbi5yLXByb2plY3Qub3JnL3dlYi9wYWNrYWdlcy9qYW5pdG9yL3ZpZ25ldHRlcy9qYW5pdG9yLmh0bWwpDQotIFtLYWdnbGUgLSBWTkwgMjAyNCBNZW4ncyBWb2xsZXliYWxsIFN0YXRzXShodHRwczovL3d3dy5rYWdnbGUuY29tL2RhdGFzZXRzL2pvbmF0aGFucG1veWVyL3ZubC0yMDI0LW1lbnMtc3RhdHM/c2VsZWN0PVZOTDIwMjRNZW5fU2NvcmVycy5jc3YpDQoNCiMgRXhwbG9yaW5nIEphbml0b3IgUGFja2FnZQ0KVGhlIEphbml0b3IgUGFja2FnZSBpbiBSIGFsbG93cyBmb3IgcXVpY2tlciBhbmQgZWFzaWVyIGRhdGEgZXhwbG9yYXRpb24gYW5kIGNsZWFuaW5nLiBUaGUgZnVuY3Rpb25zIEkgd2lsbCBiZSBleHBsb3JpbmcgaW4gdGhpcyBwYWNrYWdlIGFyZToNCg0KLSBjbGVhbmluZ19uYW1lcygpDQotIGRlc2NyaWJlX2NsYXNzKCkNCi0gdGF5YmwoKQ0KDQojIyBDbGVhbmluZw0KVXNpbmcgY2xlYW5fbmFtZXMoKSBmdW5jdGlvbiB0byBjbGVhbiBkYXRhZnJhbWUgbmFtZXMuDQoNCiMjIyBDbGVhbmluZyBDb2x1bW4gTmFtZXMNCg0KYGBge3J9DQpWTkwyMDI0TWVuX1Njb3JlcnNbMSxdDQpgYGANCkhlcmUgYXJlIHRoZSBuYW1lcyBvZiB0aGUgY29sdW1ucyBiZWZvcmUgY2xlYW5pbmcuDQoNCmBgYHtyfQ0KVk5MMjAyNE1lbl9TY29yZXJzIDwtIGNsZWFuX25hbWVzKFZOTDIwMjRNZW5fU2NvcmVycykNClZOTDIwMjRNZW5fU2NvcmVyc1sxLF0NCmBgYA0KVGhpcyBkYXRhc2V0IGlzIHF1aXRlIGNsZWFuLCBob3dldmVyLCB0aGUgb3JpZ2luYWwgY29sdW1uIG5hbWVzIGNvbnRhaW5lZCBjYXBpdGFscy4gVXNpbmcgdGhlIGNsZWFuX25hbWVzKCkgZnVuY3Rpb24sIGl0IHRvb2sgYXdheSB0aGUgY2FwaXRhbHMgdG8gYWxsb3cgZm9yIGVhc2llciBjb2RpbmcgYW5kIGNvbnNpc3RlbmN5Lg0KDQojIyBDbGVhbmluZw0KVXNpbmcgZGVzY3JpYmVfY2xhc3MoKSB0byBjaGVjayB0aGUgY2xhc3Mgb2Ygc3BlY2lmaWMgdmFyaWFibGVzIGluIHRoZSBkYXRhc2V0Lg0KDQojIyMgRGVzY3JpYmluZyBDbGFzcw0KDQpgYGB7cn0NCmRlc2NyaWJlX2NsYXNzKFZOTDIwMjRNZW5fU2NvcmVycyR0b3RfcHRzKQ0KYGBgDQoNCmBgYHtyfQ0KZGVzY3JpYmVfY2xhc3MoVk5MMjAyNE1lbl9TY29yZXJzJHRlYW0pDQpgYGANClRoaXMgZmVhdHVyZXMgYWxsb3dzIG1lIHRvIGxvb2sgaW50byB0aGUgY2xhc3Mgb2YgdGhlIHZhcmlhYmxlLCB3aGljaCBjYW4gYmUgYSBxdWljayBhbmQgdXNlZnVsIG1ldGhvZCBmb3IgdmVyaWZ5aW5nLiANCg0KIyMgRXhwbG9yaW5nDQpVc2luZyB0YWJ5bCgpIGZ1bmN0aW9uIHdpdGggYWRvcm5fIGZ1bmN0aW9ucyB0byBlbmhhbmNlIHRhYmxlLg0KDQojIyMgQm90dG9tIDEwIFBvaW50cyBTY29yZWQNCg0KYGBge3Igd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0V9DQpoZWFkKFZOTDIwMjRNZW5fU2NvcmVycyAlPiUgdGFieWwodG90X3B0cywgc2hvd19uYSA9IEZBTFNFKSAlPiUgYWRvcm5fdG90YWxzKCkgJT4lIGFkb3JuX3BjdF9mb3JtYXR0aW5nKCkgJT4lIGFkb3JuX3RpdGxlKHBsYWNlbWVudCA9ICJ0b3AiKSwgMTEpDQpgYGANCg0KIyMjIFRvcCAxMCBQb2ludHMgU2NvcmVkDQoNCmBgYHtyIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFfQ0KdGFpbChWTkwyMDI0TWVuX1Njb3JlcnMgJT4lIHRhYnlsKHRvdF9wdHMsIHNob3dfbmEgPSBGQUxTRSkgJT4lIGFkb3JuX3RvdGFscygpICU+JSBhZG9ybl9wY3RfZm9ybWF0dGluZygpICU+JSBhZG9ybl90aXRsZSgpLCAxMSkNCmBgYA0KVXNpbmcgaGVhZCgpIGFuZCB0YWlsKCkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGlzcGxheSBhcyBhbiBleGFtcGxlLCB1c2luZyB0aGUgdGFieWwoKSBmdW5jdGlvbiBhbGxvd3MgZm9yIG1lIHRvIHNlZSB0aGUgdG9wIGFuZCBib3R0b20gYW1vdW50IG9mIHBvaW50cyBzY29yZWQgd2l0aCB0aGUgcHJvcG9ydGlvbiBvZiBwbGF5ZXJzIGFjaGlldmVpbmcgdGhvc2Ugc2NvcmVzLiBBIGRlY2VudCBwZXJjZW50YWdlIG9mIHBsYXllcnMgZGlkIG5vdCBzY29yZSBhbnkgcG9pbnRzIGR1cmluZyB0aGUgVk5MLg0KDQojIyMgVG9wIFZOTCBTY29yZXINCg0KYGBge3IgZWNobyA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRX0NClRvcF9TY29yZXIgPC0gVk5MMjAyNE1lbl9TY29yZXJzW1ZOTDIwMjRNZW5fU2NvcmVycyR0b3RfcHRzPT0iMzIwIixdICNGb3VuZCBvbiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tDQpUb3BfU2NvcmVyWzIsXQ0KYGBgDQpgYGB7ciwgZWNobyA9IEZBTFNFLCBmaWcuY2FwID0gIltWb2xsZXlib3ggLSBULiBTdGVybiBQYWdlXShodHRwczovL3ZvbGxleWJveC5uZXQvdG9uY2VrLXN0ZXJuLXA0MzExKSIsIG91dC53aWR0aCA9ICcxMDAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJULiBTdGVybiBJbWFnZS5qcGVnIikNCmBgYA0KDQpVc2luZyB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgdGFieWwoKSBmdW5jdGlvbiwgSSBmb3VuZCB0aGF0IFRvbmVrIFN0ZXJuIG9mIFNsb3ZlbmlhIHNjb3JlZCB0aGUgaGlnaGVzdCBhbW91bnQgb2YgcG9pbnRzIGluIHRoZSBWTkwuIFRob3VnaCB0aGV5IGRpZCBub3QgbWFrZSBpdCBvbnRvIHRoZSBwb2RpdW0gKHBsYWNlZCBmb3VydGgpLCBTdGVybiBtYWRlIGEgaHVnZSBpbXBhY3Qgb24gZ2V0IHRoZW0gdGhhdCBoaWdoIGluIHRoZSByYW5raW5ncy4NCg0KIyBSZWZsZWN0aW9uIA0KICANCiMjIEZpbmFsIFRob3VnaHRzDQoNCkV4cGxvcmluZyB0aGlzIHBhY2thZ2Ugd2l0aCB0aGlzIGRhdGFzZXQgd2FzIHZlcnkgaW5mb3JtYXRpb25hbCBhbmQgY2FtZSB3aXRoIGl0cyBjaGFsbGVuZ2VzLiBGaW5kaW5nIG1lc3N5IGRhdGEgd2FzIGNoYWxsZW5naW5nIGZvciBtZSwgYW5kIGlzIHNvbWV0aGluZyBJIHdhbnQgdG8gZm9jdXMgb24gaW4gdGhlIGZ1dHVyZS4gQmVjYXVzZSB0aGlzIGRhdGEgd2FzIHF1aXRlIGNsZWFuLCBpdCBtYWRlIGl0IGNoYWxsZW5naW5nIHRvIGZpbmQgZnVuY3Rpb25zIGluIHRoZSBwYWNrYWdlIHRoYXQgd291bGQgcHJvZHVjZSBpbnRlcmVzdGluZyBvdXRjb21lcy4gDQoNClRoZSBuYW1lIGNsZWFuaW5nIGZ1bmN0aW9uIG1ha2VzIGl0IGVhc3kgdG8gY3JlYXRlIGNsZWFuIHZhcmlhYmxlIG5hbWVzIHF1aWNrbHksIHdoaWNoIEkgdGhpbmsgd2lsbCBiZSB2ZXJ5IHVzZWZ1bCBpbiBmdXR1cmUgcHJvamVjdHMuIFRoaXMgZ29lcyBhbG9uZyB3aXRoIHRoZSBjbGFzcyBkZXNjcmliaW5nIGZ1bmN0aW9uLCB3aGVyZSBpdCBtYXkgYmUgdmVyeSB1c2VmdWwgZm9yIGxhcmdlIGRhdGFzZXRzIHdpdGggbWFueSBjb2x1bW5zLiBUaGUgdGFieWwoKSBmdW5jdGlvbiBhbG9uZyB3aXRoIHRoZSBhZG9ybl8gYWRkIG9ucyBtYWtlcyBpdCBleHRyZW1lbHkgZWFzeSB0byBtYWtlIGEgY2xlYW4gdGFibGUuIE5leHQgdGltZSwgaXQgd2lsbCBiZSBleHRyZW1lbHkgdXNlZnVsIGZvciBjYXRlZ29yaWNhbCB2YXJpYWJsZXMsIGFzIHRoZSBmdW5jdGlvbiBpcyBub3QgcXVpdGUgbWVhbnQgZm9yIHF1YW50aXRhdGl2ZSB2YXJpYWJsZXMuIEkgZG8sIGhvd2V2ZXIsIGZpbmQgdGhlIHBlcmNlbnRhZ2VzIG9mIHBlb3BsZSB3aG8gZ290IHRob3NlIGFtb3VudCBvZiBwb2ludHMgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCByZXZlYWxlZCB0aGF0IGEgZ29vZCBhbW91bnQgb2YgcGVvcGxlIGRpZCBub3Qgc2NvcmUgYW55IHBvaW50cyBpbiB0aGUgVk5MLg0KDQpJIGVuam95ZWQgdGhlIGNoYWxsZW5nZSBvZiBmaWd1cmluZyBvdXQgZnVudGlvbnMgdG8gdXNlIG9uIG15IG93biBhbmQgd2lsbCB1c2Ugd2hhdCBJIGhhdmUgbGVhcm5lZCBmcm9tIHRoaXMgbWluLXByb2plY3QgZm9yIGFsbCBteSBmdXR1cmUgcHJvamVjdHMu