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==