library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data.1 <- read_csv("DATA1.csv", skip = 1)
## Rows: 427 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): Species
## dbl (11): MaleCare, MaleProv, Monotocous, BodyMass, LitterSize, TeatRatio, N...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data.2 <- read_csv("DATA2.csv")
## New names:
## • `` -> `...32`
## • `` -> `...33`
## • `` -> `...34`
## • `` -> `...35`
## • `` -> `...36`
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 6627 Columns: 36
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (9): binomial, Order, Family, Genus, Species, TaxonomicNote, TrophicLev...
## dbl (22): Animal, Vertebrate, Mammal, Bird, Herptile, Fish, Invertebrate, Pl...
## lgl  (5): ...32, ...33, ...34, ...35, ...36
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data.3 <- read_csv("DATA3.csv", skip = 1)
## Rows: 1552 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (10): Binomial, order, family, genus, species, Sample_size.brain, Sample...
## dbl  (4): Mean_brain_mass_g, Mean_body_mass_g, Brain.resid, T_resid
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data.4 <- read_csv("DATA4.csv", skip = 1)
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 1348 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (11): Species name (original dataset), Species name (phylogenetic tree),...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
max.lifespan.data <- read_csv("AnAgeDATA - anage_data.csv")
## Rows: 4645 Columns: 31
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (13): Kingdom, Phylum, Class, Order, Family, Genus, Species, Common name...
## dbl (18): HAGRID, Female maturity (days), Male maturity (days), Gestation/In...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data.1)[2] <- c("Biparental")
data.1.subset <- data.1[, c(1,2,6,8)]

colnames(data.2)[1] <- c("Species")
data.2.subset <- data.2[, c(1,2,24)]

colnames(data.3)[1] <- c("Species")
data.3.subset <-data.3[, c(1,9,10)]

colnames(data.4)[1] <- c("Species")
data.4.subset <- data.4[, c(1,5)]

data.1.3 <- merge(data.1.subset, data.3.subset, by = "Species", all = FALSE)
data.2.4 <- merge(data.2.subset, data.4.subset, by = "Species", all = FALSE)
data.1.3 <- data.1.3 |>
  mutate(Species = str_replace_all(Species, "_", " "))

finalized.data <- merge(data.1.3, data.2.4, by = "Species", all = FALSE)
finalized.data <- finalized.data[!is.na(finalized.data$NeonateMass), ]
finalized.data$`BMR (ml O2 h-1)` <- parse_number(finalized.data$`BMR (ml O2 h-1)`)
finalized.data <- unique(finalized.data)

BMR <- matrix(c(46.20,877.61,33.84,458.71,43.18,1126.87,56.72,2686.57,8077.11,3771.14,
31.34,51.6,3396.52,1522.89,23.52,47.26,409.46,26.87,610.95,1073.63,52.03,323.38,
137.2,262.84,761.19,25.87,2030.85,221.89,2497.51,3127.86,5226.37,5777.61,1930.35,
594.90,123.75,82.20,55.93,65.34,165.00,861.69,45.22,173.17,29.61,316.05,31.82,36.69,
21.48,97.83,1047.26,337.95,34.33,70.65,503.48,757.71,27.15,82.84,32.09,594.53,369.60,
802.49,251.00,22.13,64.64,293.03,310.25,254.55,936.82,1501.00,398.01), ncol = 1)
colnames(BMR) <- "BMR (ml O2 h-1)"

final.final <- merge(finalized.data, BMR, by = "BMR (ml O2 h-1)", all.y = TRUE)
colnames(final.final)[1] <- c("BMR")
final.final <- final.final[!is.na(final.final$Species), ]
final.final <- final.final |>
  relocate("BMR", .after = "Mean_body_mass_g")

final.final$Species
##  [1] "Crocidura russula"        "Heterocephalus glaber"   
##  [3] "Desmodus rotundus"        "Carollia perspicillata"  
##  [5] "Rhabdomys pumilio"        "Phyllostomus discolor"   
##  [7] "Apodemus sylvaticus"      "Acomys cahirinus"        
##  [9] "Cercartetus nanus"        "Elephantulus intufi"     
## [11] "Microtus pinetorum"       "Sorex araneus"           
## [13] "Mus musculus"             "Microtus ochrogaster"    
## [15] "Rattus fuscipes"          "Petaurus breviceps"      
## [17] "Meriones unguiculatus"    "Galago senegalensis"     
## [19] "Mustela erminea"          "Octodon degus"           
## [21] "Sigmodon hispidus"        "Tamiasciurus hudsonicus" 
## [23] "Spilogale putorius"       "Suricata suricatta"      
## [25] "Perameles nasuta"         "Eulemur fulvus"          
## [27] "Eulemur fulvus"           "Philander opossum"       
## [29] "Sciurus carolinensis"     "Vulpes zerda"            
## [31] "Dasyurus viverrinus"      "Aotus trivirgatus"       
## [33] "Saimiri sciureus"         "Martes americana"        
## [35] "Potos flavus"             "Genetta tigrina"         
## [37] "Genetta tigrina"          "Setonix brachyurus"      
## [39] "Nandinia binotata"        "Ailurus fulgens"         
## [41] "Phascolarctos cinereus"   "Arctictis binturong"     
## [43] "Vulpes vulpes"            "Madoqua kirkii"          
## [45] "Hystrix africaeaustralis" "Lasiorhinus latifrons"   
## [47] "Canis latrans"            "Leptailurus serval"      
## [49] "Cercopithecus mitis"      "Cercopithecus mitis"     
## [51] "Canis mesomelas"          "Macropus giganteus"
final.final <- final.final[-c(26,36,49), ]
final.final$Species
##  [1] "Crocidura russula"        "Heterocephalus glaber"   
##  [3] "Desmodus rotundus"        "Carollia perspicillata"  
##  [5] "Rhabdomys pumilio"        "Phyllostomus discolor"   
##  [7] "Apodemus sylvaticus"      "Acomys cahirinus"        
##  [9] "Cercartetus nanus"        "Elephantulus intufi"     
## [11] "Microtus pinetorum"       "Sorex araneus"           
## [13] "Mus musculus"             "Microtus ochrogaster"    
## [15] "Rattus fuscipes"          "Petaurus breviceps"      
## [17] "Meriones unguiculatus"    "Galago senegalensis"     
## [19] "Mustela erminea"          "Octodon degus"           
## [21] "Sigmodon hispidus"        "Tamiasciurus hudsonicus" 
## [23] "Spilogale putorius"       "Suricata suricatta"      
## [25] "Perameles nasuta"         "Eulemur fulvus"          
## [27] "Philander opossum"        "Sciurus carolinensis"    
## [29] "Vulpes zerda"             "Dasyurus viverrinus"     
## [31] "Aotus trivirgatus"        "Saimiri sciureus"        
## [33] "Martes americana"         "Potos flavus"            
## [35] "Genetta tigrina"          "Setonix brachyurus"      
## [37] "Nandinia binotata"        "Ailurus fulgens"         
## [39] "Phascolarctos cinereus"   "Arctictis binturong"     
## [41] "Vulpes vulpes"            "Madoqua kirkii"          
## [43] "Hystrix africaeaustralis" "Lasiorhinus latifrons"   
## [45] "Canis latrans"            "Leptailurus serval"      
## [47] "Cercopithecus mitis"      "Canis mesomelas"         
## [49] "Macropus giganteus"
final.final$MaxLifeSpan <- c(4.00,31.00,29.20,17.00,4.50,9.00,6.30,5.90,10.30,
                             9.30,3.80,3.20,4.00,5.30,5.30,17.8,6.30,17.1,12.5,
                             14.00,5.20,9.80,10.50,20.60,5.60,35.50,4.40,23.60,
                             16.30,6.80,30.10,30.20,17.80,38.40,21.30,13.80,21.00,
                             19.00,22.10,27.00,21.30,17.30,23.10,29.90,21.80,22.40,
                             37.80,16.70,25.00)
final.final <- final.final |>
  add_row(Species = "Antechinus stuartii", Biparental = 0, LitterSize = 6.89, NeonateMass = 0.01,
          Mean_brain_mass_g = 0.76, Mean_body_mass_g = 29.01, BMR = 33.84,
          Order = "MARSUPIALIA", TrophicLevel = "Carnivore", MaxLifeSpan = 5.4)

final.final <- final.final |>
  add_row(Species = "Artibeus jamaicensis", Biparental = 0, LitterSize = 1.00, NeonateMass = 10.57,
          Mean_brain_mass_g = 0.98025, Mean_body_mass_g = 43.63, BMR = 56.72,
          Order = "OTHER PLACENTAL", TrophicLevel = "Omnivore", MaxLifeSpan = 19.2)

final.final <- final.final |>
  add_row(Species = "Canis lupus", Biparental = 1, LitterSize = 4.98, NeonateMass = 412.31,
          Mean_brain_mass_g = 130.00, Mean_body_mass_g = 31756.51, BMR = 8077.11,
          Order = "CARNIVORA", TrophicLevel = "Carnivore", MaxLifeSpan = 20.6)

final.final <- final.final |>
  add_row(Species = "Cerdocyon thous", Biparental = 1, LitterSize = 3.09, NeonateMass = 140,
          Mean_brain_mass_g = 49.50, Mean_body_mass_g = 5741.66, BMR = 1522.89,
          Order = "CARNIVORA", TrophicLevel = "Omnivore", MaxLifeSpan = 12.7)

final.final <- final.final |>
  add_row(Species = "Cynopterus brachyotis", Biparental = 0, LitterSize = 0.99, NeonateMass = 6.2,
          Mean_brain_mass_g = 0.95275, Mean_body_mass_g = 33.87, BMR = 47.26,
          Order = "OTHER PLACENTAL", TrophicLevel = "Herbivore", MaxLifeSpan = 10.1)

final.final <- final.final |>
  add_row(Species = "Didelphis marsupialis", Biparental = 0, LitterSize = 7.09, NeonateMass = 0.16,
          Mean_brain_mass_g = 6.35, Mean_body_mass_g = 1134.75, BMR = 610.95,
          Order = "MARSUPIALIA", TrophicLevel = "Omnivore", MaxLifeSpan = 4.2)

final.final <- final.final |>
  add_row(Species = "Didelphis virginiana", Biparental = 0, LitterSize = 8.62, NeonateMass = 0.15,
          Mean_brain_mass_g = 6.72, Mean_body_mass_g = 2442.08, BMR = 1073.63,
          Order = "MARSUPIALIA", TrophicLevel = "Omnivore", MaxLifeSpan = 6.6)

final.final <- final.final |>
  add_row(Species = "Galea musteloides", Biparental = 0, LitterSize = 2.6, NeonateMass = 37.39,
          Mean_brain_mass_g = 2.72, Mean_body_mass_g = 386.64, BMR = 262.84,
          Order = "RODENTIA", TrophicLevel = "Herbivore", MaxLifeSpan = 3.5)

final.final <- final.final |>
  add_row(Species = "Isoodon obesulus", Biparental = 0, LitterSize = 2.33, NeonateMass = 0.34,
          Mean_brain_mass_g = 4.03, Mean_body_mass_g = 824.76, BMR = 221.89,
          Order = "MARSUPIALIA", TrophicLevel = "Carnivore", MaxLifeSpan = 6.5)

final.final <- final.final |>
  add_row(Species = "Macropus rufus", Biparental = 0, LitterSize = 1, NeonateMass = 0.81,
          Mean_brain_mass_g = 62.4, Mean_body_mass_g = 38968.39, BMR = 5777.61,
          Order = "MARSUPIALIA", TrophicLevel = "Herbivore", MaxLifeSpan = 25)

final.final <- final.final |>
  add_row(Species = "Notomys alexis", Biparental = 1, LitterSize = 4.01, NeonateMass = 2.29,
          Mean_brain_mass_g = 0.96, Mean_body_mass_g = 32.34, BMR = 45.22,
          Order = "RODENTIA", TrophicLevel = "Omnivore", MaxLifeSpan = 6.4)

final.final <- final.final |>
  add_row(Species = "Onychomys torridus", Biparental = 1, LitterSize = 3.3, NeonateMass = 2.33,
          Mean_brain_mass_g = 0.59, Mean_body_mass_g = 21.68, BMR = 29.61,
          Order = "RODENTIA", TrophicLevel = "Carnivore", MaxLifeSpan = 4.6)

final.final <- final.final |>
  add_row(Species = "Peromyscus eremicus", Biparental = 1, LitterSize = 2.52, NeonateMass = 2.51,
          Mean_brain_mass_g = 0.54, Mean_body_mass_g = 22.73, BMR = 31.82,
          Order = "RODENTIA", TrophicLevel = "Omnivore", MaxLifeSpan = 7.4)

final.final <- final.final |>
  add_row(Species = "Peromyscus leucopus", Biparental = 1, LitterSize = 4.27, NeonateMass = 1.8,
          Mean_brain_mass_g = 0.6, Mean_body_mass_g = 18.07, BMR = 36.69,
          Order = "RODENTIA", TrophicLevel = "Omnivore", MaxLifeSpan = 7.9)

final.final <- final.final |>
  add_row(Species = "Peromyscus polionotus", Biparental = 1, LitterSize = 3.59, NeonateMass = 1.54,
          Mean_brain_mass_g = 0.42, Mean_body_mass_g = 14.27, BMR = 21.48,
          Order = "RODENTIA", TrophicLevel = "Omnivore", MaxLifeSpan = 5.5)

final.final <- final.final |>
  add_row(Species = "Phyllostomus hastatus", Biparental = 0, LitterSize = 0.99, NeonateMass = 15.94,
          Mean_brain_mass_g = 1.53175, Mean_body_mass_g = 91.44, BMR = 70.65,
          Order = "OTHER PLACENTAL", TrophicLevel = "Carnivore", MaxLifeSpan = 18)

final.final <- final.final |>
  add_row(Species = "Potorous tridactylus", Biparental = 0, LitterSize = 1, NeonateMass = 0.31,
          Mean_brain_mass_g = 9.53, Mean_body_mass_g = 1054.67, BMR = 503.48,
          Order = "MARSUPIALIA", TrophicLevel = "Omnivore", MaxLifeSpan = 14.5)

final.final <- final.final |>
  add_row(Species = "Pseudantechinus macdonnellensis", Biparental = 0, LitterSize = 5.88, NeonateMass = 0.01,
          Mean_brain_mass_g = 0.49, Mean_body_mass_g = 36.88, BMR = 27.15,
          Order = "MARSUPIALIA", TrophicLevel = "Carnivore", MaxLifeSpan = 7)

final.final <- final.final |>
  add_row(Species = "Sminthopsis crassicaudata", Biparental = 0, LitterSize = 6.52, NeonateMass = 0.01,
          Mean_brain_mass_g = 0.36, Mean_body_mass_g = 15.98, BMR = 22.13,
          Order = "MARSUPIALIA", TrophicLevel = "Carnivore", MaxLifeSpan = 5)

final.final <- final.final |>
  add_row(Species = "Vulpes velox", Biparental = 1, LitterSize = 4.25, NeonateMass = 39.94,
          Mean_brain_mass_g = 32.1, Mean_body_mass_g = 2088, BMR = 936.82,
          Order = "CARNIVORA", TrophicLevel = "Carnivore", MaxLifeSpan = 15.9)

write_csv(final.final, "output_file.csv")