(3) Untidy Dataset _624
(1) READING
nyc_gt <- read.csv("NYC Gifted and Talented Grades 2018-19 - Sheet5.csv", stringsAsFactors = FALSE)
head(nyc_gt)
## Timestamp Entering.Grade.Level District Birth.Month OLSAT.Verbal.Score
## 1 2/14/18 K 30 October 24
## 2 3/1/18 K 30 February 25
## 3 3/27/18 1 2 January 25
## 4 3/27/18 1 2 May 25
## 5 3/27/18 1 2 July 25
## 6 3/27/18 1 2 November 25
## OLSAT.Verbal.Percentile NNAT.Non.Verbal.Raw.Score NNAT.Non.Verbal.Percentile
## 1 99 40 99
## 2 91 43 99
## 3 99 45 99
## 4 99 43 99
## 5 99 42 99
## 6 99 40 99
## Overall.Score School.Preferences X School.Assigned
## 1 99 NEST,Q300,PS122,Ps85 NA NEST
## 2 97 NA
## 3 99 NEST+M NA
## 4 99 NEST+M NA
## 5 99 Anderson, TAG, Nest NA
## 6 99 NEST, TAG, LL, PS11, PS130, PS33 NA TAG
## Will.you.enroll.there. Timestamp.1
## 1 YES
## 2 Y
## 3 Yes Yes
## 4
## 5
## 6 Yes at home
str(nyc_gt)
## 'data.frame': 104 obs. of 14 variables:
## $ Timestamp : chr "2/14/18" "3/1/18" "3/27/18" "3/27/18" ...
## $ Entering.Grade.Level : chr "K" "K" "1" "1" ...
## $ District : int 30 30 2 2 2 2 2 1 2 2 ...
## $ Birth.Month : chr "October" "February" "January" "May" ...
## $ OLSAT.Verbal.Score : int 24 25 25 25 25 25 25 26 26 27 ...
## $ OLSAT.Verbal.Percentile : int 99 91 99 99 99 99 99 99 99 99 ...
## $ NNAT.Non.Verbal.Raw.Score : int 40 43 45 43 42 40 38 47 47 43 ...
## $ NNAT.Non.Verbal.Percentile: int 99 99 99 99 99 99 99 99 99 99 ...
## $ Overall.Score : int 99 97 99 99 99 99 99 99 99 99 ...
## $ School.Preferences : chr "NEST,Q300,PS122,Ps85" "" "NEST+M" "NEST+M" ...
## $ X : logi NA NA NA NA NA NA ...
## $ School.Assigned : chr "NEST" "" "" "" ...
## $ Will.you.enroll.there. : chr "YES" "" "Yes" "" ...
## $ Timestamp.1 : chr "" "Y" "Yes" "" ...
(1) TIDYING
nyc_gt <- nyc_gt %>%
rename(
Timestamp = Timestamp,
GradeLevel = Entering.Grade.Level,
District = District,
BirthMonth = Birth.Month,
OLSAT_Verbal_Score = OLSAT.Verbal.Score,
OLSAT_Verbal_Percentile = OLSAT.Verbal.Percentile,
NNAT_NonVerbal_Raw = NNAT.Non.Verbal.Raw.Score,
NNAT_NonVerbal_Percentile = NNAT.Non.Verbal.Percentile,
Overall_Score = Overall.Score,
School_Preferences = School.Preferences,
Extra = X,
School_Assigned = School.Assigned,
Enroll = Will.you.enroll.there.
)
nyc_gt_tidy <- nyc_gt %>% filter(School_Assigned != "")
head(nyc_gt_tidy)
## Timestamp GradeLevel District BirthMonth OLSAT_Verbal_Score
## 1 2/14/18 K 30 October 24
## 2 3/27/18 1 2 November 25
## 3 3/27/18 1 3 January 28
## 4 3/27/18 1 2 January 24
## 5 3/27/18 1 30 May 25
## 6 3/27/18 2 21 October 26
## OLSAT_Verbal_Percentile NNAT_NonVerbal_Raw NNAT_NonVerbal_Percentile
## 1 99 40 99
## 2 99 40 99
## 3 98 45 99
## 4 97 44 99
## 5 92 44 99
## 6 99 36 99
## Overall_Score School_Preferences Extra School_Assigned Enroll
## 1 99 NEST,Q300,PS122,Ps85 NA NEST YES
## 2 99 NEST, TAG, LL, PS11, PS130, PS33 NA TAG Yes
## 3 99 NEST,Anderson,TAG,Q300,BSI NA TAG
## 4 98 Nest, Anderson,LL, Tag, 11,33,130 NA 33 Yes
## 5 97 122 NA 122 y
## 6 99 BSI, PS 215 NA PS 215 Yes
## Timestamp.1
## 1
## 2 at home
## 3 home
## 4 Y mom
## 5 N
## 6 Yes
(1) ANALYSIS
summary(nyc_gt_tidy$OLSAT_Verbal_Score)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 20.00 24.00 25.00 24.86 26.00 28.00
enroll_summary <- nyc_gt_tidy %>%
group_by(Enroll) %>%
summarise(count = n())
print(enroll_summary)
## # A tibble: 9 × 2
## Enroll count
## <chr> <int>
## 1 "" 3
## 2 "NO" 1
## 3 "No" 1
## 4 "Not sure." 1
## 5 "Unsure" 1
## 6 "YES" 1
## 7 "Yes" 10
## 8 "Yes (sibling is already in G&T in PS 38)" 1
## 9 "y" 2
library(ggplot2)
ggplot(nyc_gt_tidy, aes(x = OLSAT_Verbal_Score)) +
geom_histogram(binwidth = 1, fill = "blue", color = "black") +
labs(title = "Distribution of OLSAT Verbal Scores", x = "Score", y = "Count")

(2) READING
dnd_chars <- read.csv("dnd_chars_all.csv", stringsAsFactors = FALSE)
head(dnd_chars)
## ip finger hash name race
## 1 ed15f9d fe3ed6570067d2cd808bcee0a4396824 ee1e382c Hill Dwarf
## 2 ed15f9d aa656cef94740b1da714d82782d8a8c4 ee1e382c Hill Dwarf
## 3 6b5d3f4 d922658 04b9abba9ce759ef13319c520bf0eb69 f1f6ff43 Human
## 4 9b7218f b5d19a0 ba92372c716a832e03e866447cb2d102 f92bdd74 Fallen Aasimar
## 5 9b7218f b5d19a0 2f4a637dd42b9aa945abf870fe34edcf f92bdd74 Fallen Aasimar
## 6 bf0845c 6594cbd de16fbfebad327876582875339ad1e1f 5b8cf3ca Variant
## background date class
## 1 Guild Member - Justice 2022-08-23T20:02:11Z Sorcerer 13|Cleric 1
## 2 Guild Member - Justice 2022-08-23T19:43:25Z Sorcerer 13|Cleric 1
## 3 Noble 2022-08-22T14:57:09Z Fighter 13
## 4 Outlander 2022-08-22T12:12:53Z Sorcerer 3|Druid 2
## 5 Outlander 2022-08-22T12:07:21Z Sorcerer 3|Druid 2
## 6 Entertainer 2022-08-22T03:19:30Z Bard 1
## justClass subclass level
## 1 Sorcerer|Cleric Clockwork Soul|Order Domain 14
## 2 Sorcerer|Cleric Clockwork Soul|Order Domain 14
## 3 Fighter Eldritch Knight 13
## 4 Sorcerer|Druid Shadow Magic|Circle of Wildfire 5
## 5 Sorcerer|Druid Shadow Magic|Circle of Wildfire 5
## 6 Bard 1
## feats HP AC Str Dex Con Int Wis Cha
## 1 Fey Touched|War Caster|Metamagic Adept 146 10 9 11 20 14 14 20
## 2 133 10 9 11 18 14 14 20
## 3 Heavy Armor Master 140 21 20 12 19 14 11 10
## 4 34 16 8 10 14 10 16 16
## 5 34 16 8 10 14 10 16 16
## 6 10 13 10 16 14 12 8 16
## alignment skills
## 1 Arcana|Religion|Intimidation
## 2 Arcana|Religion|Intimidation
## 3 CG History|Insight|Perception|Persuasion
## 4 Caltico Neutro Athletics|Arcana|Insight|Survival
## 5 Caltico Neutro Athletics|Arcana|Insight|Survival
## 6 Acrobatics|Sleight of Hand|Perception|Deception|Performance
## weapons
## 1 Crossbow, light|Dagger
## 2 Crossbow, light|Dagger
## 3 Longsword +1|Dagger|Crossbow, light|Mace Of Disruption
## 4 Dagger
## 5 Dagger
## 6 Longsword|Dagger|Longbow
## spells
## 1 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|Summon Construct*4|Greater Restoration*5|Wall of Force*5
## 2 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|Summon Construct*4|Greater Restoration*5|Wall of Force*5
## 3 Prestidigitation*0|Mage Hand*0|Blade Ward*0|Light*0|Alarm*1|Burning Hands*1|Unseen Servant*1|Chromatic Orb*1|Magic Missile*1|Identify*1|Detect Magic*1|Absorb Elements*1|Armor of Agathys*1|Shatter*2|Misty Step*2|Enlarge/Reduce*2|Catnap*3
## 4 Burning Hands*1|Cure Wounds*1|Darkness*2
## 5 Burning Hands*1|Cure Wounds*1|Darkness*2
## 6
## castingStat
## 1 Cha
## 2 Cha
## 3 Int
## 4 Cha
## 5 Cha
## 6 Cha
## choices
## 1 metamagic/Twinned Spell*Subtle Spell*Quickened Spell*Extended Spell
## 2 metamagic/Twinned Spell*Subtle Spell*Quickened Spell
## 3 fighting style/Defense
## 4 metamagic/Transmuted Spell*Seeking Spell
## 5 metamagic/Transmuted Spell*Seeking Spell
## 6
## country countryCode processedAlignment good lawful processedRace
## 1 Canada CA NA NA Dwarf
## 2 Canada CA NA NA Dwarf
## 3 United States US CG NA NA Human
## 4 Brazil BR NA NA Aasimar
## 5 Brazil BR NA NA Aasimar
## 6 Canada CA NA NA Half-Elf
## processedSpells
## 1 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|*|Greater Restoration*5|Wall of Force*5
## 2 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|*|Greater Restoration*5|Wall of Force*5
## 3 Prestidigitation*0|Mage Hand*0|Blade Ward*0|Light*0|Alarm*1|Burning Hands*1|Unseen Servant*1|Chromatic Orb*1|Magic Missile*1|Identify*1|Detect Magic*1|Absorb Elements*1|Armor of Agathys*1|Shatter*2|Misty Step*2|Enlarge/Reduce*2|Catnap*3
## 4 Burning Hands*1|Cure Wounds*1|Darkness*2
## 5 Burning Hands*1|Cure Wounds*1|Darkness*2
## 6
## processedWeapons alias
## 1 Crossbow, Light|Dagger thirsty_davinci
## 2 Crossbow, Light|Dagger thirsty_davinci
## 3 Longsword|Dagger|Crossbow, Light|Mace cool_bhabha
## 4 Dagger vigilant_mcclintock
## 5 Dagger vigilant_mcclintock
## 6 Longsword|Dagger|Longbow quirky_hertz
str(dnd_chars)
## 'data.frame': 10894 obs. of 35 variables:
## $ ip : chr "" "" "6b5d3f4" "9b7218f" ...
## $ finger : chr "ed15f9d" "ed15f9d" "d922658" "b5d19a0" ...
## $ hash : chr "fe3ed6570067d2cd808bcee0a4396824" "aa656cef94740b1da714d82782d8a8c4" "04b9abba9ce759ef13319c520bf0eb69" "ba92372c716a832e03e866447cb2d102" ...
## $ name : chr "ee1e382c" "ee1e382c" "f1f6ff43" "f92bdd74" ...
## $ race : chr "Hill Dwarf" "Hill Dwarf" "Human" "Fallen Aasimar" ...
## $ background : chr "Guild Member - Justice" "Guild Member - Justice" "Noble" "Outlander" ...
## $ date : chr "2022-08-23T20:02:11Z" "2022-08-23T19:43:25Z" "2022-08-22T14:57:09Z" "2022-08-22T12:12:53Z" ...
## $ class : chr "Sorcerer 13|Cleric 1" "Sorcerer 13|Cleric 1" "Fighter 13" "Sorcerer 3|Druid 2" ...
## $ justClass : chr "Sorcerer|Cleric" "Sorcerer|Cleric" "Fighter" "Sorcerer|Druid" ...
## $ subclass : chr "Clockwork Soul|Order Domain" "Clockwork Soul|Order Domain" "Eldritch Knight" "Shadow Magic|Circle of Wildfire" ...
## $ level : int 14 14 13 5 5 1 20 20 4 4 ...
## $ feats : chr "Fey Touched|War Caster|Metamagic Adept" "" "Heavy Armor Master" "" ...
## $ HP : int 146 133 140 34 34 10 94 116 41 35 ...
## $ AC : int 10 10 21 16 16 13 16 13 15 13 ...
## $ Str : int 9 9 20 8 8 10 13 14 14 9 ...
## $ Dex : int 11 11 12 10 10 16 16 15 16 17 ...
## $ Con : int 20 18 19 14 14 14 13 12 15 13 ...
## $ Int : int 14 14 14 10 10 12 15 11 11 17 ...
## $ Wis : int 14 14 11 16 16 8 15 17 13 10 ...
## $ Cha : int 20 20 10 16 16 16 14 11 11 11 ...
## $ alignment : chr "" "" "CG" "Caltico Neutro" ...
## $ skills : chr "Arcana|Religion|Intimidation" "Arcana|Religion|Intimidation" "History|Insight|Perception|Persuasion" "Athletics|Arcana|Insight|Survival" ...
## $ weapons : chr "Crossbow, light|Dagger" "Crossbow, light|Dagger" "Longsword +1|Dagger|Crossbow, light|Mace Of Disruption " "Dagger" ...
## $ spells : chr "Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protectio"| __truncated__ "Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protectio"| __truncated__ "Prestidigitation*0|Mage Hand*0|Blade Ward*0|Light*0|Alarm*1|Burning Hands*1|Unseen Servant*1|Chromatic Orb*1|Ma"| __truncated__ "Burning Hands*1|Cure Wounds*1|Darkness*2" ...
## $ castingStat : chr "Cha" "Cha" "Int" "Cha" ...
## $ choices : chr "metamagic/Twinned Spell*Subtle Spell*Quickened Spell*Extended Spell" "metamagic/Twinned Spell*Subtle Spell*Quickened Spell" "fighting style/Defense" "metamagic/Transmuted Spell*Seeking Spell" ...
## $ country : chr "Canada" "Canada" "United States" "Brazil" ...
## $ countryCode : chr "CA" "CA" "US" "BR" ...
## $ processedAlignment: chr "" "" "CG" "" ...
## $ good : logi NA NA NA NA NA NA ...
## $ lawful : logi NA NA NA NA NA NA ...
## $ processedRace : chr "Dwarf" "Dwarf" "Human" "Aasimar" ...
## $ processedSpells : chr "Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protectio"| __truncated__ "Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protectio"| __truncated__ "Prestidigitation*0|Mage Hand*0|Blade Ward*0|Light*0|Alarm*1|Burning Hands*1|Unseen Servant*1|Chromatic Orb*1|Ma"| __truncated__ "Burning Hands*1|Cure Wounds*1|Darkness*2" ...
## $ processedWeapons : chr "Crossbow, Light|Dagger" "Crossbow, Light|Dagger" "Longsword|Dagger|Crossbow, Light|Mace" "Dagger" ...
## $ alias : chr "thirsty_davinci" "thirsty_davinci" "cool_bhabha" "vigilant_mcclintock" ...
(2) TIDYING
if("date" %in% names(dnd_chars)){
dnd_chars$date <- as.Date(dnd_chars$date)
}
dnd_chars_tidy <- dnd_chars %>%
mutate(
Primary_Class = sapply(strsplit(as.character(class), '\\\\|'), `[`, 1),
Secondary_Class = sapply(strsplit(as.character(class), '\\\\|'), function(x) ifelse(length(x)>1, x[2], NA))
)
head(dnd_chars_tidy)
## ip finger hash name race
## 1 ed15f9d fe3ed6570067d2cd808bcee0a4396824 ee1e382c Hill Dwarf
## 2 ed15f9d aa656cef94740b1da714d82782d8a8c4 ee1e382c Hill Dwarf
## 3 6b5d3f4 d922658 04b9abba9ce759ef13319c520bf0eb69 f1f6ff43 Human
## 4 9b7218f b5d19a0 ba92372c716a832e03e866447cb2d102 f92bdd74 Fallen Aasimar
## 5 9b7218f b5d19a0 2f4a637dd42b9aa945abf870fe34edcf f92bdd74 Fallen Aasimar
## 6 bf0845c 6594cbd de16fbfebad327876582875339ad1e1f 5b8cf3ca Variant
## background date class justClass
## 1 Guild Member - Justice 2022-08-23 Sorcerer 13|Cleric 1 Sorcerer|Cleric
## 2 Guild Member - Justice 2022-08-23 Sorcerer 13|Cleric 1 Sorcerer|Cleric
## 3 Noble 2022-08-22 Fighter 13 Fighter
## 4 Outlander 2022-08-22 Sorcerer 3|Druid 2 Sorcerer|Druid
## 5 Outlander 2022-08-22 Sorcerer 3|Druid 2 Sorcerer|Druid
## 6 Entertainer 2022-08-22 Bard 1 Bard
## subclass level feats
## 1 Clockwork Soul|Order Domain 14 Fey Touched|War Caster|Metamagic Adept
## 2 Clockwork Soul|Order Domain 14
## 3 Eldritch Knight 13 Heavy Armor Master
## 4 Shadow Magic|Circle of Wildfire 5
## 5 Shadow Magic|Circle of Wildfire 5
## 6 1
## HP AC Str Dex Con Int Wis Cha alignment
## 1 146 10 9 11 20 14 14 20
## 2 133 10 9 11 18 14 14 20
## 3 140 21 20 12 19 14 11 10 CG
## 4 34 16 8 10 14 10 16 16 Caltico Neutro
## 5 34 16 8 10 14 10 16 16 Caltico Neutro
## 6 10 13 10 16 14 12 8 16
## skills
## 1 Arcana|Religion|Intimidation
## 2 Arcana|Religion|Intimidation
## 3 History|Insight|Perception|Persuasion
## 4 Athletics|Arcana|Insight|Survival
## 5 Athletics|Arcana|Insight|Survival
## 6 Acrobatics|Sleight of Hand|Perception|Deception|Performance
## weapons
## 1 Crossbow, light|Dagger
## 2 Crossbow, light|Dagger
## 3 Longsword +1|Dagger|Crossbow, light|Mace Of Disruption
## 4 Dagger
## 5 Dagger
## 6 Longsword|Dagger|Longbow
## spells
## 1 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|Summon Construct*4|Greater Restoration*5|Wall of Force*5
## 2 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|Summon Construct*4|Greater Restoration*5|Wall of Force*5
## 3 Prestidigitation*0|Mage Hand*0|Blade Ward*0|Light*0|Alarm*1|Burning Hands*1|Unseen Servant*1|Chromatic Orb*1|Magic Missile*1|Identify*1|Detect Magic*1|Absorb Elements*1|Armor of Agathys*1|Shatter*2|Misty Step*2|Enlarge/Reduce*2|Catnap*3
## 4 Burning Hands*1|Cure Wounds*1|Darkness*2
## 5 Burning Hands*1|Cure Wounds*1|Darkness*2
## 6
## castingStat
## 1 Cha
## 2 Cha
## 3 Int
## 4 Cha
## 5 Cha
## 6 Cha
## choices
## 1 metamagic/Twinned Spell*Subtle Spell*Quickened Spell*Extended Spell
## 2 metamagic/Twinned Spell*Subtle Spell*Quickened Spell
## 3 fighting style/Defense
## 4 metamagic/Transmuted Spell*Seeking Spell
## 5 metamagic/Transmuted Spell*Seeking Spell
## 6
## country countryCode processedAlignment good lawful processedRace
## 1 Canada CA NA NA Dwarf
## 2 Canada CA NA NA Dwarf
## 3 United States US CG NA NA Human
## 4 Brazil BR NA NA Aasimar
## 5 Brazil BR NA NA Aasimar
## 6 Canada CA NA NA Half-Elf
## processedSpells
## 1 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|*|Greater Restoration*5|Wall of Force*5
## 2 Alarm*1|Protection from Evil and Good*1|Command*1|Heroism*1|Aid*2|Lesser Restoration*2|Dispel Magic*3|Protection from Energy*3|Freedom of Movement*4|*|Greater Restoration*5|Wall of Force*5
## 3 Prestidigitation*0|Mage Hand*0|Blade Ward*0|Light*0|Alarm*1|Burning Hands*1|Unseen Servant*1|Chromatic Orb*1|Magic Missile*1|Identify*1|Detect Magic*1|Absorb Elements*1|Armor of Agathys*1|Shatter*2|Misty Step*2|Enlarge/Reduce*2|Catnap*3
## 4 Burning Hands*1|Cure Wounds*1|Darkness*2
## 5 Burning Hands*1|Cure Wounds*1|Darkness*2
## 6
## processedWeapons alias Primary_Class
## 1 Crossbow, Light|Dagger thirsty_davinci S
## 2 Crossbow, Light|Dagger thirsty_davinci S
## 3 Longsword|Dagger|Crossbow, Light|Mace cool_bhabha F
## 4 Dagger vigilant_mcclintock S
## 5 Dagger vigilant_mcclintock S
## 6 Longsword|Dagger|Longbow quirky_hertz B
## Secondary_Class
## 1 o
## 2 o
## 3 i
## 4 o
## 5 o
## 6 a
(2) ANALYSIS
summary(dnd_chars_tidy$level)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 1.000 4.000 4.754 6.000 261.000
class_counts <- dnd_chars_tidy %>% group_by(Primary_Class) %>% summarise(count = n())
print(class_counts)
## # A tibble: 12 × 2
## Primary_Class count
## <chr> <int>
## 1 A 218
## 2 B 1687
## 3 C 1006
## 4 D 725
## 5 F 1464
## 6 G 2
## 7 M 731
## 8 P 894
## 9 R 2107
## 10 S 659
## 11 W 1400
## 12 c 1
ggplot(dnd_chars_tidy, aes(x = level)) +
geom_histogram(binwidth = 1, fill = "green", color = "black") +
labs(title = "Distribution of Character Levels", x = "Level", y = "Count")

(3) READING
untidy <- read.csv("Untidydataset _624.csv", stringsAsFactors = FALSE)
head(untidy)
## Untidy.Breast.Cancer.Dataset..2020.2024. X X.1 X.2
## 1 Patient_ID Month Age_Group Race
## 2 P001 January 30-39 White
## 3 P002 January 40-49 Black
## 4 P003 January 50-59 Hispanic
## 5 P004 February 30-39 Asian
## 6 P005 February 40-49 White
## X.3 X.4 X.5 X.6 X.7 X.8
## 1 Cases_2020 Cases_2021 Cases_2022 Cases_2023 Cases_2024 Total_Patients
## 2 50 55 60 65 70 300
## 3 90 95 100 105 120 510
## 4 80 85 88 90 110 453
## 5 70 75 80 85 90 400
## 6 110 115 120 125 140 610
## X.9 X.10 X.11
## 1 Type NA NA
## 2 Invasive Ductal NA NA
## 3 Lobular NA NA
## 4 Triple-Negative NA NA
## 5 HER2+ NA NA
## 6 Inflammatory NA NA
str(untidy)
## 'data.frame': 15 obs. of 13 variables:
## $ Untidy.Breast.Cancer.Dataset..2020.2024.: chr "Patient_ID" "P001" "P002" "P003" ...
## $ X : chr "Month" "January" "January" "January" ...
## $ X.1 : chr "Age_Group" "30-39" "40-49" "50-59" ...
## $ X.2 : chr "Race" "White" "Black" "Hispanic" ...
## $ X.3 : chr "Cases_2020" "50" "90" "80" ...
## $ X.4 : chr "Cases_2021" "55" "95" "85" ...
## $ X.5 : chr "Cases_2022" "60" "100" "88" ...
## $ X.6 : chr "Cases_2023" "65" "105" "90" ...
## $ X.7 : chr "Cases_2024" "70" "120" "110" ...
## $ X.8 : chr "Total_Patients" "300" "510" "453" ...
## $ X.9 : chr "Type" "Invasive Ductal" "Lobular" "Triple-Negative" ...
## $ X.10 : logi NA NA NA NA NA NA ...
## $ X.11 : logi NA NA NA NA NA NA ...
(3) TIDYING
untidy <- untidy %>%
rename_all(~ make.names(.))
if(all(c('measurement1','measurement2','measurement3') %in% names(untidy))){
untidy_tidy <- untidy %>%
pivot_longer(cols = c(measurement1, measurement2, measurement3),
names_to = "Measurement", values_to = "Value")
} else {
untidy_tidy <- untidy # if no such columns exist, use the data as is.
}
head(untidy_tidy)
## Untidy.Breast.Cancer.Dataset..2020.2024. X X.1 X.2
## 1 Patient_ID Month Age_Group Race
## 2 P001 January 30-39 White
## 3 P002 January 40-49 Black
## 4 P003 January 50-59 Hispanic
## 5 P004 February 30-39 Asian
## 6 P005 February 40-49 White
## X.3 X.4 X.5 X.6 X.7 X.8
## 1 Cases_2020 Cases_2021 Cases_2022 Cases_2023 Cases_2024 Total_Patients
## 2 50 55 60 65 70 300
## 3 90 95 100 105 120 510
## 4 80 85 88 90 110 453
## 5 70 75 80 85 90 400
## 6 110 115 120 125 140 610
## X.9 X.10 X.11
## 1 Type NA NA
## 2 Invasive Ductal NA NA
## 3 Lobular NA NA
## 4 Triple-Negative NA NA
## 5 HER2+ NA NA
## 6 Inflammatory NA NA
(3) ANALYSIS
summary(untidy_tidy)
## Untidy.Breast.Cancer.Dataset..2020.2024. X X.1
## Length:15 Length:15 Length:15
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
## X.2 X.3 X.4 X.5
## Length:15 Length:15 Length:15 Length:15
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## X.6 X.7 X.8 X.9
## Length:15 Length:15 Length:15 Length:15
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## X.10 X.11
## Mode:logical Mode:logical
## NA's:15 NA's:15
##
if("Value" %in% names(untidy_tidy)){
ggplot(untidy_tidy, aes(x = Value)) +
geom_histogram(fill = "purple", color = "black") +
labs(title = "Distribution of Values", x = "Value", y = "Count")
}
CONCLUSION