class Datasets::Penguins
This dataset provides the same dataset as github.com/allisonhorst/palmerpenguins
Constants
- Record
Public Class Methods
new()
click to toggle source
Calls superclass method
Datasets::Dataset::new
# File lib/datasets/penguins.rb, line 88 def initialize super @metadata.id = "palmerpenguins" @metadata.name = "palmerpenguins" @metadata.url = "https://allisonhorst.github.io/palmerpenguins/" @metadata.licenses = ["CC0"] @metadata.description = "A great dataset for data exploration & visualization, as an alternative to iris" end
Public Instance Methods
each() { |convert_record(raw_record)| ... }
click to toggle source
# File lib/datasets/penguins.rb, line 97 def each(&block) return to_enum(__method__) unless block_given? species_classes = [ PenguinsRawData::Adelie, PenguinsRawData::Chinstrap, PenguinsRawData::Gentoo, ] species_classes.each do |species_class| species_class.new.each do |raw_record| yield convert_record(raw_record) end end end
Private Instance Methods
cleanse_fields(raw_record)
click to toggle source
# File lib/datasets/penguins.rb, line 117 def cleanse_fields(raw_record) species = raw_record.species.split(' ')[0] flipper_length_mm = raw_record.flipper_length_mm&.to_i body_mass_g = raw_record.body_mass_g&.to_i sex = normalize_sex(raw_record.sex) year = raw_record.date_egg&.year [ species, raw_record.island, raw_record.culmen_length_mm, raw_record.culmen_depth_mm, flipper_length_mm, body_mass_g, sex, year ] end
convert_record(raw_record)
click to toggle source
# File lib/datasets/penguins.rb, line 113 def convert_record(raw_record) Record.new(*cleanse_fields(raw_record)) end
normalize_sex(val)
click to toggle source
# File lib/datasets/penguins.rb, line 136 def normalize_sex(val) val = val&.downcase case val when "female", "male", nil val else nil end end