This is an R data package with data in YAML format (for ease of entry and to more easily keep track of metadata) including necessary R code to import said data into a rectangularized tibble.
The dataset contains around 70 properties of the chemical elements. The package has two vignettes; the first demonstrates how the YAML file is read and saved into the tibble exported by this package, the second show-cases how the data can be used to visualize different properties on the canvas of the periodic table.
My hope is that this package will make it easier for chemists, teachers, and anyone interested in chemistry to generate periodic tables of whatever trend they wish to visualize.
IUPAC periodic tableTo install this package:
install.packages("remotes")
remotes::install_github("solarchemist/periodicdata")
To also build the vignettes when installing this package, modify the last line to:
remotes::install_github("solarchemist/periodicdata", build_opts = c("--no-resave-data", "--no-manual"), build_vignettes = TRUE)
This list of all the properties in this dataset is dynamically generated from the YAML dataset every time the vignette is rebuilt:
Property | Description (truncated) | DOI | URL |
---|---|---|---|
Adiabatic_Index | Adiabatic index, also known as the heat capacity ratio, the ratio of specific… | 1, 2 | |
Atomic_Number | Atomic number | 1 | |
Atomic_Radius | Atomic radius | 1 | |
Atomic_Weight | Atomic weight of the longest-lived isotope. | 1 | |
Autoignition_Point | Autoignition point | ||
Block | Block | ||
Boiling_Point | Boiling point at STP | ||
Brinell_Hardness | Brinell hardness | 1, 2 | |
Bulk_Modulus | Bulk modulus | ||
CAS_Number | CAS registry number | 1 | |
CID_Number | CID number | ||
Colour | Colour at STP | ||
Conventional_Atomic_Weight | Standard atomic weight abridged to four significant digits, for uses where a … | 1 | |
Covalent_Radius | Covalent radius | ||
Critical_Pressure | Critical pressure | 1 | |
Critical_Temperature | Critical temperature | 1 | |
Curie_Temperature | Curie temperature | 1 | |
DOT_Hazard_Class | US DOT hazard class | 1 | |
DOT_Numbers | US DOT number | ||
Decay_Mode | Decay mode | ||
Density | Density at STP | 1 | |
Density_Liquid | Density in the liquid state | 1 | |
Electrical_Conductivity | Electrical conductivity | ||
Electrical_Resistivity | Electrical resistivity | ||
Electrical_Type | Electrical type | ||
Electron_Affinity | Electron affinity | 1, 2 | |
Electron_Configuration | Electron configuration | ||
Electronegativity | Electronegativity (Pauling) | 1, 2, 3 | |
Element_Descriptions | Element descriptions from the Debian dict-elements package v20001107-a-9.1. L… | 1 | |
Gas_Phase_Configuration | Configuration in gas phase | ||
Gmelin_Number | Gmelin number | ||
Group | Group assignments per the IUPAC periodic table. | ||
Group_Left_Step | Group assignments per the left step periodic table (Janet’s table). | 1 | |
Half_Life | Half-life | ||
Heat_of_Combustion | Heat of combustion | ||
Heat_of_Fusion | Heat of fusion | ||
Heat_of_Vapourization | Heat of vapourization | ||
Lifetime | Lifetime | 1 | |
Magnetic_Susceptibility_Volume | Magnetic susceptibility by volume | 1 | |
Magnetic_Type | Magnetic type | ||
Melting_Point | Melting point at STP | ||
Mohs_Hardness | Mohs hardness | 1, 2 | |
Molar_Volume | Molar volume | ||
Name | Name | ||
Natural_Occurrence | Natural occurrence of the elements, whether primordial, from radioactive deca… | 1, 2, 3, 4 | |
Neel_Point | Neel point | 1 | |
Neutron_Cross_Section | Neutron cross section | ||
Neutron_Mass_Absorption | Neutron mass absorption | ||
Percent_in_Earths_Crust | Percent in Earth’s crust | ||
Percent_in_Humans | Percent in the human body | ||
Percent_in_Meteorites | Percent in meteorites | ||
Percent_in_Oceans | Percent in the Earth’s oceans | ||
Percent_in_Sun | Percent in the Sun | ||
Percent_in_Universe | Percent in the Universe | ||
Period | Period assignments per the IUPAC periodic table. | ||
Period_Left_Step | Period assignments per the left step periodic table (Janet’s table). | ||
Phase | Phase at STP | ||
Poisson_Ratio | Poisson’s ratio | ||
Price_2010 | Price in 2010 | 1 | |
Production_2010 | Global primary production in 2010 | 1 | |
Quantum_Numbers | Quantum numbers | ||
RTECS_Number | RTECS number | 1 | |
Refractive_Index | Refractive index | ||
Series | Series per the IUPAC periodic table. | ||
Shear_Modulus | Shear modulus | ||
Space_Group_Name | Space group name | ||
Space_Group_Name_LaTeX | Space group name | ||
Space_Group_Number | Space group number | ||
Specific_Heat_Capacity | The specific heat capacity, or the isobaric mass heat capacity. | 1, 2, 3, 4 | |
Speed_of_Sound | Speed of sound | ||
Standard_Atomic_Weight | Standard atomic weight, or more correctly, standard relative atomic mass, is … | 1, 2 | 1 |
Superconducting_Point | Superconducting point | ||
Symbol | Symbol | ||
Thermal_Conductivity | Thermal conductivity | 1 | |
Thermal_Expansion | Thermal expansion | ||
Valence | Valence electrons | ||
Van_der_Waals_Radius | Corresponds well to published vdW radii in literature. | ||
Vickers_Hardness | Vickers hardness | 1 | |
XKCD_Four_Elements | Reproduction of XKCD #2975 published 2024-08-21. | 1, 2 | |
Young_Modulus | Young’s modulus |
Your contributions are most welcome! Please report corrections as an issue or PR.
To add more data to the dataset, check out this repository and edit the
YAML file inst/extdata/periodicdata.yml
.
To rebuild the package, I recommend you run the provided bash script in
tools/
. You will of course need R. Other rebuild requirements are
To checkout this repository:
$ git clone https://github.com/solarchemist/periodicdata.git
To rebuild the package after having made edits to the YAML data:
$ rebuild_package.sh --refresh-data
The rebuild script has more functionality; use the --help
flag or read
its source code to familiarize yourself.
As part of the rebuild procedure R CMD check
runs and should complete
without any errors, warnings, or notes.
It is not really possible for me to keep track of how anyone uses this package, nor do I have such an intention. But if you feel like letting me know how you made use of this data or visualizations in your teaching or work, I will gladly list you here!
- Chemistry Student Handbook, by prof. Eric Van Dornshuld, University of Georgia (2023). CC BY-NC-SA 4.0. Visualizes common periodic trends and kindly credits me and this package.
I released this package in 2019 spurred by the International Year of Chemistry (#IYPT2019), building mostly on earlier work which I had until then not packaged:
- Properties of the elements: data collection and ggplot2 tables, Ahmed (2014)
- All available elemental properties plotted as periodic tables, Ahmed (2015)
These original web scraping scripts are preserved as package articles in the vignettes directory, but no longer fill any role in maintaining this dataset.
- Periodic table of elements by IUPAC
- periodictable.com, provides “curated data provided by Mathematica’s ElementData function from Wolfram Research, Inc.” on their website as HTML/CSS tables
- Wolfram’s
ElementData()
function - Wolfram’s
ElementData()
function - sources - https://periodic-table.io
- NIST Chemistry WebBook
- webelements.com by Winter, M. (2007)
- Atomic Weights and Isotopic Compositions with Relative Atomic Masses, NIST Physical Measurement Laboratory
- Atomic Mass Data Center, NUBASE
- Barbalace, K. “Periodic Table of Elements.” 2007
- Elements in the Human Body and What They Do
- Vesborg & Jaramillo, Addressing the terawatt challenge: scalability in the supply of chemical elements for renewable energy. RSC Advances 2, 7933–7947 (2012).
- pTable: equation balancer, solution calculator and chemistry database, Python (10+ stars, ~30 properties)
- Periodic elements data, npm (100+ stars, ~20 properties)
- PeriodicTable.jl, Julia (20+ stars, ~20 properties with unitful physical quantities)
- Periodic-Table-JSON, simply a JSON file (100+ stars, ~20 properties)
- Extensible periodic table with x-ray and neutron scattering data, Python (60+ stars)
- PeriodicTable, R package on CRAN, ~25 properties by Julien Idé, with data from Data Explorer
- QCElemental, Python (50+ stars, exposes NIST CODATA, quantum chemistry data, and more)
- GTK-Periodic-Table-Molecular-Formula, C++ (<10 stars, ~20 properties)
- Periodica.Data, .NET (<10 stars, ~20 properties)
- Chemistry Utility, Python script with JSON/spreadsheets (<10 stars, ~70 properties)
- Comprehensive Periodic Table of the Elements Scrape, Python script with JSON/spreadsheets (<10 stars, ~700 properties)
- chemr, R package which uses Wikipedia’s chemical elements data (<10 stars, ~10 properties)
- mendeleev package, Python (10+ stars, ~60 properties). Authored by Łukasz Mentel. Project supported by the Norwegian Research Council.
- List of chemical elements, Wikipedia (~10 properties)
- NIST Chemistry WebBook
- NIST Atomic Weights and Isotopic Compositions with Relative Atomic Masses