library(dplyr)
library(stringr)
#Loading the CSV fike
pokemon_data <- read.csv("pokemon-go-raw-data-form.csv")
#remove duplicate rows
pokemon_data <- pokemon_data%>%
distinct()
#Unification of Weather
pokemon_data$Weather <- gsub("cloudy","Cloudy",pokemon_data$Weather)
#Unifing the type of pokeball from duplicit names
pokemon_data$Type.of.Pokeball <- gsub("pokeball","regular",pokemon_data$Type.of.Pokeball)
#renames the type of catch to have same results
pokemon_data <- pokemon_data %>%
mutate(Type.of.catch = case_when(
Type.of.catch %in% c("regular", "reg") ~ "regular",
Type.of.catch %in% c("nice", "n") ~ "nice",
Type.of.catch %in% c("great", "g") ~ "great",
Type.of.catch %in% c("excellent", "ex") ~ "excellent",
TRUE ~ Type.of.catch
))
#Removes the row with missing value in the type of catch
pokemon_data <- pokemon_data %>%
filter(!is.na(Type.of.catch) & Type.of.catch != "")
#Mutation of names so for duplicates pokemon they are the same
pokemon_data <- pokemon_data %>%
mutate(Name = str_to_title(Name),
Weather = str_to_title(Weather),
Type.A = str_to_title(Type.A),
Type.B = str_to_title(Type.B),
Type.of.Pokeball = str_to_title(Type.of.Pokeball),
Type.of.catch = str_to_title(Type.of.catch)
)
#Removes the N/A rows
pokemon_data <- pokemon_data %>%
drop_na()
View(pokemon_data)
ggplot(pokemon_data, aes(x = Name)) +
geom_bar(fill = "steelblue") +
labs(title = "Frequency of Pokémon Caught", x = "Pokémon", y = "Count") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))

ggplot(pokemon_data, aes(x = Type.A, y = CP, fill = Type.A)) +
geom_boxplot() +
labs(title = "Combat Power Distribution by Pokémon Type", x = "Type", y = "CP")

regular_pokeball_data <- pokemon_data %>%
filter(Type.of.Pokeball == "Regular")
# Create the plot
ggplot(regular_pokeball_data, aes(x = Type.A, y = CP, fill = Type.A)) +
geom_boxplot() +
labs(title = "Combat Power Distribution for Regular Pokéball by Pokémon Type", x = "Type", y = "CP")

ggplot(pokemon_data, aes(x = Location, y = CP, color = Type.A)) +
geom_point(size = 3, alpha = 0.7) + # Adjust size and transparency of points
labs(title = "Combat Power (CP) by Location", x = "Location", y = "Combat Power (CP)")

pokeball_data <- pokemon_data %>%
group_by(Type.of.Pokeball) %>%
summarise(Count = n(), .groups = 'drop')
ggplot(pokeball_data, aes(x = "", y = Count, fill = Type.of.Pokeball)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
labs(title = "Distribution of Pokéball Types", fill = "Type of Pokéball")

ggplot(pokemon_data, aes(x = CP)) +
geom_histogram(binwidth = 50, fill = "blue", color = "black", alpha = 0.7) +
labs(title = "Distribution of Combat Power (CP)", x = "Combat Power (CP)", y = "Frequency")

LS0tDQp0aXRsZTogIlJfQWN0aXZpdHlfNCINCmF1dGhvcjogIk9uZHJlaiBEdXNhIg0KZGF0ZTogIjIwMjQtMTAtMDIiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHN0cmluZ3IpDQoNCiNMb2FkaW5nIHRoZSBDU1YgZmlrZQ0KcG9rZW1vbl9kYXRhIDwtIHJlYWQuY3N2KCJwb2tlbW9uLWdvLXJhdy1kYXRhLWZvcm0uY3N2IikNCg0KI3JlbW92ZSBkdXBsaWNhdGUgcm93cw0KcG9rZW1vbl9kYXRhIDwtIHBva2Vtb25fZGF0YSU+JQ0KICBkaXN0aW5jdCgpDQoNCiNVbmlmaWNhdGlvbiBvZiBXZWF0aGVyDQpwb2tlbW9uX2RhdGEkV2VhdGhlciA8LSBnc3ViKCJjbG91ZHkiLCJDbG91ZHkiLHBva2Vtb25fZGF0YSRXZWF0aGVyKQ0KIA0KI1VuaWZpbmcgdGhlIHR5cGUgb2YgcG9rZWJhbGwgZnJvbSBkdXBsaWNpdCBuYW1lcw0KcG9rZW1vbl9kYXRhJFR5cGUub2YuUG9rZWJhbGwgPC0gZ3N1YigicG9rZWJhbGwiLCJyZWd1bGFyIixwb2tlbW9uX2RhdGEkVHlwZS5vZi5Qb2tlYmFsbCkNCg0KI3JlbmFtZXMgdGhlIHR5cGUgb2YgY2F0Y2ggdG8gaGF2ZSBzYW1lIHJlc3VsdHMNCnBva2Vtb25fZGF0YSA8LSBwb2tlbW9uX2RhdGEgJT4lDQogIG11dGF0ZShUeXBlLm9mLmNhdGNoID0gY2FzZV93aGVuKA0KICAgIFR5cGUub2YuY2F0Y2ggJWluJSBjKCJyZWd1bGFyIiwgInJlZyIpIH4gInJlZ3VsYXIiLA0KICAgIFR5cGUub2YuY2F0Y2ggJWluJSBjKCJuaWNlIiwgIm4iKSB+ICJuaWNlIiwNCiAgICBUeXBlLm9mLmNhdGNoICVpbiUgYygiZ3JlYXQiLCAiZyIpIH4gImdyZWF0IiwNCiAgICBUeXBlLm9mLmNhdGNoICVpbiUgYygiZXhjZWxsZW50IiwgImV4IikgfiAiZXhjZWxsZW50IiwNCiAgICBUUlVFIH4gVHlwZS5vZi5jYXRjaCANCiAgKSkNCg0KI1JlbW92ZXMgdGhlIHJvdyB3aXRoIG1pc3NpbmcgdmFsdWUgaW4gdGhlIHR5cGUgb2YgY2F0Y2gNCnBva2Vtb25fZGF0YSA8LSBwb2tlbW9uX2RhdGEgJT4lDQogIGZpbHRlcighaXMubmEoVHlwZS5vZi5jYXRjaCkgJiBUeXBlLm9mLmNhdGNoICE9ICIiKQ0KDQojTXV0YXRpb24gb2YgbmFtZXMgc28gZm9yIGR1cGxpY2F0ZXMgcG9rZW1vbiB0aGV5IGFyZSB0aGUgc2FtZQ0KcG9rZW1vbl9kYXRhIDwtIHBva2Vtb25fZGF0YSAlPiUNCiAgbXV0YXRlKE5hbWUgPSBzdHJfdG9fdGl0bGUoTmFtZSksDQogICAgICAgICBXZWF0aGVyID0gc3RyX3RvX3RpdGxlKFdlYXRoZXIpLA0KICAgICAgICAgVHlwZS5BID0gc3RyX3RvX3RpdGxlKFR5cGUuQSksDQogICAgICAgICBUeXBlLkIgPSBzdHJfdG9fdGl0bGUoVHlwZS5CKSwNCiAgICAgICAgIFR5cGUub2YuUG9rZWJhbGwgPSBzdHJfdG9fdGl0bGUoVHlwZS5vZi5Qb2tlYmFsbCksDQogICAgICAgICBUeXBlLm9mLmNhdGNoID0gc3RyX3RvX3RpdGxlKFR5cGUub2YuY2F0Y2gpDQogICAgICAgICApDQoNCiNSZW1vdmVzIHRoZSBOL0Egcm93cw0KcG9rZW1vbl9kYXRhIDwtIHBva2Vtb25fZGF0YSAlPiUNCiAgZHJvcF9uYSgpDQoNClZpZXcocG9rZW1vbl9kYXRhKQ0KYGBgDQoNCmBgYHtyfQ0KZ2dwbG90KHBva2Vtb25fZGF0YSwgYWVzKHggPSBOYW1lKSkgKw0KICBnZW9tX2JhcihmaWxsID0gInN0ZWVsYmx1ZSIpICsNCiAgbGFicyh0aXRsZSA9ICJGcmVxdWVuY3kgb2YgUG9rw6ltb24gQ2F1Z2h0IiwgeCA9ICJQb2vDqW1vbiIsIHkgPSAiQ291bnQiKSArDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSkpDQoNCmdncGxvdChwb2tlbW9uX2RhdGEsIGFlcyh4ID0gVHlwZS5BLCB5ID0gQ1AsIGZpbGwgPSBUeXBlLkEpKSArDQogIGdlb21fYm94cGxvdCgpICsNCiAgbGFicyh0aXRsZSA9ICJDb21iYXQgUG93ZXIgRGlzdHJpYnV0aW9uIGJ5IFBva8OpbW9uIFR5cGUiLCB4ID0gIlR5cGUiLCB5ID0gIkNQIikNCg0KcmVndWxhcl9wb2tlYmFsbF9kYXRhIDwtIHBva2Vtb25fZGF0YSAlPiUNCiAgZmlsdGVyKFR5cGUub2YuUG9rZWJhbGwgPT0gIlJlZ3VsYXIiKQ0KDQpnZ3Bsb3QocmVndWxhcl9wb2tlYmFsbF9kYXRhLCBhZXMoeCA9IFR5cGUuQSwgeSA9IENQLCBmaWxsID0gVHlwZS5BKSkgKw0KICBnZW9tX2JveHBsb3QoKSArDQogIGxhYnModGl0bGUgPSAiQ29tYmF0IFBvd2VyIERpc3RyaWJ1dGlvbiBmb3IgUmVndWxhciBQb2vDqWJhbGwgYnkgUG9rw6ltb24gVHlwZSIsIHggPSAiVHlwZSIsIHkgPSAiQ1AiKQ0KDQpnZ3Bsb3QocG9rZW1vbl9kYXRhLCBhZXMoeCA9IExvY2F0aW9uLCB5ID0gQ1AsIGNvbG9yID0gVHlwZS5BKSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSAzLCBhbHBoYSA9IDAuNykgKw0KICBsYWJzKHRpdGxlID0gIkNvbWJhdCBQb3dlciAoQ1ApIGJ5IExvY2F0aW9uIiwgeCA9ICJMb2NhdGlvbiIsIHkgPSAiQ29tYmF0IFBvd2VyIChDUCkiKSANCg0KcG9rZWJhbGxfZGF0YSA8LSBwb2tlbW9uX2RhdGEgJT4lDQogIGdyb3VwX2J5KFR5cGUub2YuUG9rZWJhbGwpICU+JQ0KICBzdW1tYXJpc2UoQ291bnQgPSBuKCksIC5ncm91cHMgPSAnZHJvcCcpDQoNCmdncGxvdChwb2tlYmFsbF9kYXRhLCBhZXMoeCA9ICIiLCB5ID0gQ291bnQsIGZpbGwgPSBUeXBlLm9mLlBva2ViYWxsKSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5Iiwgd2lkdGggPSAxKSArDQogIGNvb3JkX3BvbGFyKCJ5IikgKw0KICBsYWJzKHRpdGxlID0gIkRpc3RyaWJ1dGlvbiBvZiBQb2vDqWJhbGwgVHlwZXMiLCBmaWxsID0gIlR5cGUgb2YgUG9rw6liYWxsIikNCg0KZ2dwbG90KHBva2Vtb25fZGF0YSwgYWVzKHggPSBDUCkpICsNCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSA1MCwgZmlsbCA9ICJibHVlIiwgY29sb3IgPSAiYmxhY2siLCBhbHBoYSA9IDAuNykgKw0KICBsYWJzKHRpdGxlID0gIkRpc3RyaWJ1dGlvbiBvZiBDb21iYXQgUG93ZXIgKENQKSIsIHggPSAiQ29tYmF0IFBvd2VyIChDUCkiLCB5ID0gIkZyZXF1ZW5jeSIpDQpgYGANCg==